From 2bac2209f8418cce8d3c75c9e7410ec73075b218 Mon Sep 17 00:00:00 2001
From: Etienne Kneuss <colder@php.net>
Date: Tue, 23 Apr 2013 16:59:15 +0200
Subject: [PATCH] Web interface moved to epfl-lara/leon-web

---
 web/.gitignore                              |  15 -
 web/README                                  |  21 -
 web/app/controllers/Application.scala       |  36 -
 web/app/examples/Example.scala              |   3 -
 web/app/examples/SynthesisExamples.scala    |  87 ---
 web/app/examples/VerificationExamples.scala | 707 --------------------
 web/app/models/LeonConsole.scala            | 195 ------
 web/app/views/index.scala.html              |  83 ---
 web/app/views/main.scala.html               |  18 -
 web/conf/application.conf                   |  52 --
 web/conf/routes                             |  12 -
 web/lib/cafebabe_2.9.2-1.2.jar              |   1 -
 web/lib/leon_2.9.2-2.0.jar                  |   1 -
 web/lib/scalaz3.jar                         |   1 -
 web/project/Build.scala                     |  18 -
 web/project/build.properties                |   1 -
 web/project/plugins.sbt                     |   8 -
 web/public/images/lambda-ico.png            | Bin 587 -> 0 bytes
 web/public/images/leonlogo.png              | Bin 5301 -> 0 bytes
 web/public/images/lionbkg.png               | Bin 115853 -> 0 bytes
 web/public/javascripts/ace.js               |  11 -
 web/public/javascripts/jquery-1.8.3.min.js  |   2 -
 web/public/javascripts/leon.js              |  63 --
 web/public/javascripts/mode-scala.js        |   1 -
 web/public/stylesheets/leon.css             | 216 ------
 25 files changed, 1552 deletions(-)
 delete mode 100644 web/.gitignore
 delete mode 100644 web/README
 delete mode 100644 web/app/controllers/Application.scala
 delete mode 100644 web/app/examples/Example.scala
 delete mode 100644 web/app/examples/SynthesisExamples.scala
 delete mode 100644 web/app/examples/VerificationExamples.scala
 delete mode 100644 web/app/models/LeonConsole.scala
 delete mode 100644 web/app/views/index.scala.html
 delete mode 100644 web/app/views/main.scala.html
 delete mode 100644 web/conf/application.conf
 delete mode 100644 web/conf/routes
 delete mode 120000 web/lib/cafebabe_2.9.2-1.2.jar
 delete mode 120000 web/lib/leon_2.9.2-2.0.jar
 delete mode 120000 web/lib/scalaz3.jar
 delete mode 100644 web/project/Build.scala
 delete mode 100644 web/project/build.properties
 delete mode 100644 web/project/plugins.sbt
 delete mode 100644 web/public/images/lambda-ico.png
 delete mode 100644 web/public/images/leonlogo.png
 delete mode 100644 web/public/images/lionbkg.png
 delete mode 100644 web/public/javascripts/ace.js
 delete mode 100644 web/public/javascripts/jquery-1.8.3.min.js
 delete mode 100644 web/public/javascripts/leon.js
 delete mode 100644 web/public/javascripts/mode-scala.js
 delete mode 100644 web/public/stylesheets/leon.css

diff --git a/web/.gitignore b/web/.gitignore
deleted file mode 100644
index 6a9232b75..000000000
--- a/web/.gitignore
+++ /dev/null
@@ -1,15 +0,0 @@
-conf/local.conf
-logs
-project/project
-project/target
-target
-tmp
-.history
-dist
-/.idea
-/*.iml
-/out
-/.idea_modules
-/.classpath
-/.project
-/RUNNING_PID
diff --git a/web/README b/web/README
deleted file mode 100644
index 89a67e71b..000000000
--- a/web/README
+++ /dev/null
@@ -1,21 +0,0 @@
-HOWTO RUN LEON ONLINE
-*********************
-
-$ cd path/to/leon-2.0
-$ sbt package script
-$ cd web
-$ source ../setupenv
-
-
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!!! Make sure SCALA_HOME is SET! !!!
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-** On laraserver **
-
-    $ export LD_LIBRARY_PATH=/localhome/leonweb/git/z3/build/
-    $ play "start -Dapp.prefix=/leon"
-
-** Locally **
-
-    $ play run
diff --git a/web/app/controllers/Application.scala b/web/app/controllers/Application.scala
deleted file mode 100644
index ad0dff194..000000000
--- a/web/app/controllers/Application.scala
+++ /dev/null
@@ -1,36 +0,0 @@
-package leon.web
-package controllers
-
-import play.api._
-import play.api.mvc._
-import play.api.libs.json._
-import play.api.libs.json.Json._
-import play.api.libs.json.Writes._
-
-import examples._
-import models.LeonConsole
-
-object Application extends Controller {
-
-  val examples = VerificationExamples.allExamples ++ SynthesisExamples.allExamples
-
-  def index(powermode : Boolean) = Action { implicit request =>
-    val prefix = Play.current.configuration.getString("app.prefix").getOrElse("")
-
-    Ok(views.html.index(examples, VerificationExamples.default, prefix, powermode))
-  }
-
-  def getExample(id: Int) = Action { 
-    examples.lift.apply(id) match {
-      case Some(ex) =>
-        Ok(toJson(Map("status" -> "success", "code" -> ex.code)))
-      case None =>
-        Ok(toJson(Map("status" -> "error", "errormsg" -> "Unknown example")))
-    }
-  }
-
-  def openConsole() = WebSocket.async[JsValue] { request =>
-    LeonConsole.open
-  }
-
-}
diff --git a/web/app/examples/Example.scala b/web/app/examples/Example.scala
deleted file mode 100644
index dcf38d999..000000000
--- a/web/app/examples/Example.scala
+++ /dev/null
@@ -1,3 +0,0 @@
-package examples
-
-case class Example(title: String, kind: String, code: String)
diff --git a/web/app/examples/SynthesisExamples.scala b/web/app/examples/SynthesisExamples.scala
deleted file mode 100644
index 6ee3b804d..000000000
--- a/web/app/examples/SynthesisExamples.scala
+++ /dev/null
@@ -1,87 +0,0 @@
-package examples
-
-object SynthesisExamples {
-  var allExamples = List[Example]()
-
-  def newExample(title: String, code: String) {
-    allExamples = allExamples ::: Example(title, "synthesis", code) :: Nil
-  }
-
-  newExample("ADT Induction", """
-import scala.collection.immutable.Set
-import leon.Annotations._
-import leon.Utils._
-
-object SortedList {
-  sealed abstract class List
-  case class Cons(head: Int, tail: List) extends List
-  case class Nil() extends List
-
-  // proved with unrolling=0
-  def size(l: List) : Int = (l match {
-      case Nil() => 0
-      case Cons(_, t) => 1 + size(t)
-  }) ensuring(res => res >= 0)
-
-  //def sizeSynth(l: List): Int = choose{ (i: Int) => i >= 0 && sizeSynth(Cons(0, l)) == i + 1}
-
-  def content(l: List): Set[Int] = l match {
-    case Nil() => Set.empty[Int]
-    case Cons(i, t) => Set(i) ++ content(t)
-  }
-
-  //def artifialSubcase(v : Int) = choose {
-  //  (out : List) =>
-  //    content(out) == (content(Nil()) -- Set(v))
-  //}
-
-  def deleteSynth(in: List, v: Int) = choose {
-    (out: List) =>
-      // This spec is too weak. Maybe use later as bad example?
-      //!(content(out) contains v) && size(out)+1 >= size(in)
-      (content(out) == (content(in) -- Set(v)))
-  }
-
-  def concatSynth(in1: List, in2: List) = choose {
-    (out : List) =>
-      content(out) == content(in1) ++ content(in2)
-  }
-
-  def isSorted(l: List): Boolean = l match {
-    case Nil() => true
-    case Cons(x, Nil()) => true
-    case Cons(x, Cons(y, ys)) => x <= y && isSorted(Cons(y, ys))
-  }
-}""".trim)
-
-  newExample("Binary Tree", """
-import scala.collection.immutable.Set
-import leon.Annotations._
-import leon.Utils._
-
-object BinaryTree {
-  sealed abstract class Tree
-  case class Node(left : Tree, value : Int, right : Tree) extends Tree
-  case class Leaf() extends Tree
-
-  def content(t : Tree): Set[Int] = t match {
-    case Leaf() => Set.empty[Int]
-    case Node(l, v, r) => content(l) ++ Set(v) ++ content(r)
-  }
-
-  def delete(in : Tree, v : Int) = choose { (out : Tree) =>
-    content(out) == (content(in) -- Set(v))
-  }
-}
-  """.trim)
-
-  newExample("Seconds to Time", """
-import leon.Utils._
-
-object Sec2Time {
-
-  def s2t(total: Int) : (Int, Int, Int) = choose((h: Int, m: Int, s: Int) => 3600*h + 60*m + s == total && h >= 0 && m >= 0 && m < 60 && s >= 0 && s < 60)
-
-}
-  """.trim)
-}
diff --git a/web/app/examples/VerificationExamples.scala b/web/app/examples/VerificationExamples.scala
deleted file mode 100644
index f0243f699..000000000
--- a/web/app/examples/VerificationExamples.scala
+++ /dev/null
@@ -1,707 +0,0 @@
-package examples
-
-object VerificationExamples {
-  var allExamples = List[Example]()
-
-  def newExample(title: String, code: String) {
-    allExamples = allExamples ::: Example(title, "verification", code) :: Nil
-  }
-
-  val default = Example("Default", "verification", """
-import scala.collection.immutable.Set
-import leon.Annotations._
-import leon.Utils._
-
-object Example {
-  sealed abstract class List
-  case class Cons(head: Int, tail: List) extends List
-  case class Nil() extends List
-
-  def size(list : List) : Int = (list match {
-    case Nil() => 0
-    case Cons(_, xs) => 1 + size(xs)
-  }) ensuring(_ >= 0)
-
-  def content(l: List) : Set[Int] = l match {
-    case Nil() => Set.empty[Int]
-    case Cons(x, xs) => Set(x) ++ content(xs)
-  }
-
-  /* ... */
-
-}
-  """.trim)
-
-  newExample("Amortized Queue", """
-import scala.collection.immutable.Set
-import leon.Utils._
-import leon.Annotations._
-
-object AmortizedQueue {
-  sealed abstract class List
-  case class Cons(head : Int, tail : List) extends List
-  case class Nil() extends List
-
-  sealed abstract class AbsQueue
-  case class Queue(front : List, rear : List) extends AbsQueue
-
-  def size(list : List) : Int = (list match {
-    case Nil() => 0
-    case Cons(_, xs) => 1 + size(xs)
-  }) ensuring(_ >= 0)
-
-  def content(l: List) : Set[Int] = l match {
-    case Nil() => Set.empty[Int]
-    case Cons(x, xs) => Set(x) ++ content(xs)
-  }
-  
-  def asList(queue : AbsQueue) : List = queue match {
-    case Queue(front, rear) => concat(front, reverse(rear))
-  }
-
-  def concat(l1 : List, l2 : List) : List = (l1 match {
-    case Nil() => l2
-    case Cons(x,xs) => Cons(x, concat(xs, l2))
-  }) ensuring (res => size(res) == size(l1) + size(l2) && content(res) == content(l1) ++ content(l2))
-
-  def isAmortized(queue : AbsQueue) : Boolean = queue match {
-    case Queue(front, rear) => size(front) >= size(rear)
-  }
-
-  def isEmpty(queue : AbsQueue) : Boolean = queue match {
-    case Queue(Nil(), Nil()) => true
-    case _ => false
-  }
-
-  def reverse(l : List) : List = (l match {
-    case Nil() => Nil()
-    case Cons(x, xs) => concat(reverse(xs), Cons(x, Nil()))
-  }) ensuring (content(_) == content(l))
-
-  def amortizedQueue(front : List, rear : List) : AbsQueue = {
-    if (size(rear) <= size(front))
-      Queue(front, rear)
-    else
-      Queue(concat(front, reverse(rear)), Nil())
-  } ensuring(isAmortized(_))
-
-  def enqueue(queue : AbsQueue, elem : Int) : AbsQueue = (queue match {
-    case Queue(front, rear) => amortizedQueue(front, Cons(elem, rear))
-  }) ensuring(isAmortized(_))
-
-  def tail(queue : AbsQueue) : AbsQueue = {
-    require(isAmortized(queue) && !isEmpty(queue))
-    queue match {
-      case Queue(Cons(f, fs), rear) => amortizedQueue(fs, rear)
-    }
-  } ensuring (isAmortized(_))
-
-  def front(queue : AbsQueue) : Int = {
-    require(isAmortized(queue) && !isEmpty(queue))
-    queue match {
-      case Queue(Cons(f, _), _) => f
-    }
-  }
-
-  @induct
-  def propFront(queue : AbsQueue, list : List, elem : Int) : Boolean = {
-    require(!isEmpty(queue) && isAmortized(queue))
-    if (asList(queue) == list) {
-      list match {
-        case Cons(x, _) => front(queue) == x
-      }
-    } else
-      true
-  } holds
-
-  def enqueueAndFront(queue : AbsQueue, elem : Int) : Boolean = {
-    if (isEmpty(queue))
-      front(enqueue(queue, elem)) == elem
-    else
-      true
-  } holds
-
-  def enqueueDequeueThrice(queue : AbsQueue, e1 : Int, e2 : Int, e3 : Int) : Boolean = {
-    if (isEmpty(queue)) {
-      val q1 = enqueue(queue, e1)
-      val q2 = enqueue(q1, e2)
-      val q3 = enqueue(q2, e3)
-      val e1prime = front(q3)
-      val q4 = tail(q3)
-      val e2prime = front(q4)
-      val q5 = tail(q4)
-      val e3prime = front(q5)
-      e1 == e1prime && e2 == e2prime && e3 == e3prime
-    } else
-      true
-  } holds
-}""".trim)
-
-  newExample("Associative List", """
-import scala.collection.immutable.Set
-import leon.Utils._
-import leon.Annotations._
-
-object AssociativeList { 
-  sealed abstract class KeyValuePairAbs
-  case class KeyValuePair(key: Int, value: Int) extends KeyValuePairAbs
-
-  sealed abstract class List
-  case class Cons(head: KeyValuePairAbs, tail: List) extends List
-  case class Nil() extends List
-
-  sealed abstract class OptionInt
-  case class Some(i: Int) extends OptionInt
-  case class None() extends OptionInt
-
-  def domain(l: List): Set[Int] = l match {
-    case Nil() => Set.empty[Int]
-    case Cons(KeyValuePair(k,_), xs) => Set(k) ++ domain(xs)
-  }
-
-  def find(l: List, e: Int): OptionInt = l match {
-    case Nil() => None()
-    case Cons(KeyValuePair(k, v), xs) => if (k == e) Some(v) else find(xs, e)
-  }
-
-  def noDuplicates(l: List): Boolean = l match {
-    case Nil() => true
-    case Cons(KeyValuePair(k, v), xs) => find(xs, k) == None() && noDuplicates(xs)
-  }
-
-  def update(l1: List, l2: List): List = (l2 match {
-    case Nil() => l1
-    case Cons(x, xs) => update(updateElem(l1, x), xs)
-  }) ensuring(domain(_) == domain(l1) ++ domain(l2))
-
-  def updateElem(l: List, e: KeyValuePairAbs): List = (l match {
-    case Nil() => Cons(e, Nil())
-    case Cons(KeyValuePair(k, v), xs) => e match {
-      case KeyValuePair(ek, ev) => if (ek == k) Cons(KeyValuePair(ek, ev), xs) else Cons(KeyValuePair(k, v), updateElem(xs, e))
-    }
-  }) ensuring(res => e match {
-    case KeyValuePair(k, v) => domain(res) == domain(l) ++ Set[Int](k)
-  })
-
-  @induct
-  def readOverWrite(l: List, k1: Int, k2: Int, e: Int) : Boolean = {
-    find(updateElem(l, KeyValuePair(k2,e)), k1) == (if (k1 == k2) Some(e) else find(l, k1))
-  } holds
-}
-  """.trim)
-
-  newExample("Insertion Sort", """
-import scala.collection.immutable.Set
-import leon.Annotations._
-import leon.Utils._
-
-object InsertionSort {
-  sealed abstract class List
-  case class Cons(head:Int,tail:List) extends List
-  case class Nil() extends List
-
-  sealed abstract class OptInt
-  case class Some(value: Int) extends OptInt
-  case class None() extends OptInt
-
-  def size(l : List) : Int = (l match {
-    case Nil() => 0
-    case Cons(_, xs) => 1 + size(xs)
-  }) ensuring(_ >= 0)
-
-  def contents(l: List): Set[Int] = l match {
-    case Nil() => Set.empty
-    case Cons(x,xs) => contents(xs) ++ Set(x)
-  }
-
-  def isSorted(l: List): Boolean = l match {
-    case Nil() => true
-    case Cons(x, Nil()) => true
-    case Cons(x, Cons(y, ys)) => x <= y && isSorted(Cons(y, ys))
-  }   
-
-  /* Inserting element 'e' into a sorted list 'l' produces a sorted list with
-   * the expected content and size */
-  def sortedIns(e: Int, l: List): List = {
-    require(isSorted(l))
-    l match {
-      case Nil() => Cons(e,Nil())
-      case Cons(x,xs) => if (x <= e) Cons(x,sortedIns(e, xs)) else Cons(e, l)
-    } 
-  } ensuring(res => contents(res) == contents(l) ++ Set(e) 
-                    && isSorted(res)
-                    && size(res) == size(l) + 1
-            )
-
-  /* A counterexample is found when we forget to specify the precondition */
-  def buggySortedIns(e: Int, l: List): List = {
-    l match {
-      case Nil() => Cons(e,Nil())
-      case Cons(x,xs) => if (x <= e) Cons(x,buggySortedIns(e, xs)) else Cons(e, l)
-    } 
-  } ensuring(res => contents(res) == contents(l) ++ Set(e) 
-                    && isSorted(res)
-                    && size(res) == size(l) + 1
-            )
-
-  /* Insertion sort yields a sorted list of same size and content as the input
-   * list */
-  def sort(l: List): List = (l match {
-    case Nil() => Nil()
-    case Cons(x,xs) => sortedIns(x, sort(xs))
-  }) ensuring(res => contents(res) == contents(l) 
-                     && isSorted(res)
-                     && size(res) == size(l)
-             )
-
-  /* Merges one (unsorted) list into another, sorted, list. */
-  def mergeInto(l1 : List, l2 : List) : List = {
-    require(isSorted(l2))
-    l1 match {
-      case Nil() => l2
-      case Cons(x, xs) => mergeInto(xs, sortedIns(x, l2))
-    }
-  } ensuring(res => contents(res) == contents(l1) ++ contents(l2) && isSorted(res))
-
-  def main(args: Array[String]): Unit = {
-    val ls: List = Cons(5, Cons(2, Cons(4, Cons(5, Cons(1, Cons(8,Nil()))))))
-
-    println(ls)
-    println(sort(ls))
-  }
-}
-  """.trim)
-
-  newExample("List Operations", """
-import scala.collection.immutable.Set
-import leon.Annotations._
-import leon.Utils._
-
-object ListOperations {
-    sealed abstract class List
-    case class Cons(head: Int, tail: List) extends List
-    case class Nil() extends List
-
-    sealed abstract class IntPairList
-    case class IPCons(head: IntPair, tail: IntPairList) extends IntPairList
-    case class IPNil() extends IntPairList
-
-    sealed abstract class IntPair
-    case class IP(fst: Int, snd: Int) extends IntPair
-
-    def size(l: List) : Int = (l match {
-        case Nil() => 0
-        case Cons(_, t) => 1 + size(t)
-    }) ensuring(res => res >= 0)
-
-    def iplSize(l: IntPairList) : Int = (l match {
-      case IPNil() => 0
-      case IPCons(_, xs) => 1 + iplSize(xs)
-    }) ensuring(_ >= 0)
-
-    def zip(l1: List, l2: List) : IntPairList = {
-      // try to comment this and see how pattern-matching becomes
-      // non-exhaustive and post-condition fails
-      require(size(l1) == size(l2))
-
-      l1 match {
-        case Nil() => IPNil()
-        case Cons(x, xs) => l2 match {
-          case Cons(y, ys) => IPCons(IP(x, y), zip(xs, ys))
-        }
-      }
-    } ensuring(iplSize(_) == size(l1))
-
-    def sizeTailRec(l: List) : Int = sizeTailRecAcc(l, 0)
-    def sizeTailRecAcc(l: List, acc: Int) : Int = {
-     require(acc >= 0)
-     l match {
-       case Nil() => acc
-       case Cons(_, xs) => sizeTailRecAcc(xs, acc+1)
-     }
-    } ensuring(res => res == size(l) + acc)
-
-    def sizesAreEquiv(l: List) : Boolean = {
-      size(l) == sizeTailRec(l)
-    } holds
-
-    def content(l: List) : Set[Int] = l match {
-      case Nil() => Set.empty[Int]
-      case Cons(x, xs) => Set(x) ++ content(xs)
-    }
-
-    def sizeAndContent(l: List) : Boolean = {
-      size(l) == 0 || content(l) != Set.empty[Int]
-    } holds
-    
-    def drunk(l : List) : List = (l match {
-      case Nil() => Nil()
-      case Cons(x,l1) => Cons(x,Cons(x,drunk(l1)))
-    }) ensuring (size(_) == 2 * size(l))
-
-    def reverse(l: List) : List = reverse0(l, Nil()) ensuring(content(_) == content(l))
-    def reverse0(l1: List, l2: List) : List = (l1 match {
-      case Nil() => l2
-      case Cons(x, xs) => reverse0(xs, Cons(x, l2))
-    }) ensuring(content(_) == content(l1) ++ content(l2))
-
-    def append(l1 : List, l2 : List) : List = (l1 match {
-      case Nil() => l2
-      case Cons(x,xs) => Cons(x, append(xs, l2))
-    }) ensuring(content(_) == content(l1) ++ content(l2))
-
-    @induct
-    def nilAppend(l : List) : Boolean = (append(l, Nil()) == l) holds
-
-    @induct
-    def appendAssoc(xs : List, ys : List, zs : List) : Boolean =
-      (append(append(xs, ys), zs) == append(xs, append(ys, zs))) holds
-
-    def revAuxBroken(l1 : List, e : Int, l2 : List) : Boolean = {
-      (append(reverse(l1), Cons(e,l2)) == reverse0(l1, l2))
-    } holds
-
-    @induct
-    def sizeAppend(l1 : List, l2 : List) : Boolean =
-      (size(append(l1, l2)) == size(l1) + size(l2)) holds
-
-    @induct
-    def concat(l1: List, l2: List) : List = 
-      concat0(l1, l2, Nil()) ensuring(content(_) == content(l1) ++ content(l2))
-
-    @induct
-    def concat0(l1: List, l2: List, l3: List) : List = (l1 match {
-      case Nil() => l2 match {
-        case Nil() => reverse(l3)
-        case Cons(y, ys) => {
-          concat0(Nil(), ys, Cons(y, l3))
-        }
-      }
-      case Cons(x, xs) => concat0(xs, l2, Cons(x, l3))
-    }) ensuring(content(_) == content(l1) ++ content(l2) ++ content(l3))
-}
-  """.trim)
-
-  newExample("Propositional Logic", """
-import scala.collection.immutable.Set
-import leon.Utils._
-import leon.Annotations._
-
-object PropositionalLogic { 
-
-  sealed abstract class Formula
-  case class And(lhs: Formula, rhs: Formula) extends Formula
-  case class Or(lhs: Formula, rhs: Formula) extends Formula
-  case class Implies(lhs: Formula, rhs: Formula) extends Formula
-  case class Not(f: Formula) extends Formula
-  case class Literal(id: Int) extends Formula
-
-  def simplify(f: Formula): Formula = (f match {
-    case And(lhs, rhs) => And(simplify(lhs), simplify(rhs))
-    case Or(lhs, rhs) => Or(simplify(lhs), simplify(rhs))
-    case Implies(lhs, rhs) => Or(Not(simplify(lhs)), simplify(rhs))
-    case Not(f) => Not(simplify(f))
-    case Literal(_) => f
-  }) ensuring(isSimplified(_))
-
-  def isSimplified(f: Formula): Boolean = f match {
-    case And(lhs, rhs) => isSimplified(lhs) && isSimplified(rhs)
-    case Or(lhs, rhs) => isSimplified(lhs) && isSimplified(rhs)
-    case Implies(_,_) => false
-    case Not(f) => isSimplified(f)
-    case Literal(_) => true
-  }
-
-  def nnf(formula: Formula): Formula = (formula match {
-    case And(lhs, rhs) => And(nnf(lhs), nnf(rhs))
-    case Or(lhs, rhs) => Or(nnf(lhs), nnf(rhs))
-    case Implies(lhs, rhs) => Implies(nnf(lhs), nnf(rhs))
-    case Not(And(lhs, rhs)) => Or(nnf(Not(lhs)), nnf(Not(rhs)))
-    case Not(Or(lhs, rhs)) => And(nnf(Not(lhs)), nnf(Not(rhs)))
-    case Not(Implies(lhs, rhs)) => And(nnf(lhs), nnf(Not(rhs)))
-    case Not(Not(f)) => nnf(f)
-    case Not(Literal(_)) => formula
-    case Literal(_) => formula
-  }) ensuring(isNNF(_))
-
-  def isNNF(f: Formula): Boolean = f match {
-    case And(lhs, rhs) => isNNF(lhs) && isNNF(rhs)
-    case Or(lhs, rhs) => isNNF(lhs) && isNNF(rhs)
-    case Implies(lhs, rhs) => isNNF(lhs) && isNNF(rhs)
-    case Not(Literal(_)) => true
-    case Not(_) => false
-    case Literal(_) => true
-  }
-
-  def evalLit(id : Int) : Boolean = (id == 42) // could be any function
-  def eval(f: Formula) : Boolean = f match {
-    case And(lhs, rhs) => eval(lhs) && eval(rhs)
-    case Or(lhs, rhs) => eval(lhs) || eval(rhs)
-    case Implies(lhs, rhs) => !eval(lhs) || eval(rhs)
-    case Not(f) => !eval(f)
-    case Literal(id) => evalLit(id)
-  }
-  
-  @induct
-  def simplifySemantics(f: Formula) : Boolean = {
-    eval(f) == eval(simplify(f))
-  } holds
-
-  // Note that matching is exhaustive due to precondition.
-  def vars(f: Formula): Set[Int] = {
-    require(isNNF(f))
-    f match {
-      case And(lhs, rhs) => vars(lhs) ++ vars(rhs)
-      case Or(lhs, rhs) => vars(lhs) ++ vars(rhs)
-      case Implies(lhs, rhs) => vars(lhs) ++ vars(rhs)
-      case Not(Literal(i)) => Set[Int](i)
-      case Literal(i) => Set[Int](i)
-    }
-  }
-
-  def fv(f : Formula) = { vars(nnf(f)) }
-
-  @induct
-  def wrongCommutative(f: Formula) : Boolean = {
-    nnf(simplify(f)) == simplify(nnf(f))
-  } holds
-
-  @induct
-  def simplifyBreaksNNF(f: Formula) : Boolean = {
-    require(isNNF(f))
-    isNNF(simplify(f))
-  } holds
-
-  @induct
-  def nnfIsStable(f: Formula) : Boolean = {
-    require(isNNF(f))
-    nnf(f) == f
-  } holds
-  
-  @induct
-  def simplifyIsStable(f: Formula) : Boolean = {
-    require(isSimplified(f))
-    simplify(f) == f
-  } holds
-}
-  """.trim)
-
-  newExample("Red-Black Tree", """
-import scala.collection.immutable.Set
-import leon.Annotations._
-import leon.Utils._
-
-object RedBlackTree { 
-  sealed abstract class Color
-  case class Red() extends Color
-  case class Black() extends Color
- 
-  sealed abstract class Tree
-  case class Empty() extends Tree
-  case class Node(color: Color, left: Tree, value: Int, right: Tree) extends Tree
-
-  sealed abstract class OptionInt
-  case class Some(v : Int) extends OptionInt
-  case class None() extends OptionInt
-
-  def content(t: Tree) : Set[Int] = t match {
-    case Empty() => Set.empty
-    case Node(_, l, v, r) => content(l) ++ Set(v) ++ content(r)
-  }
-
-  def size(t: Tree) : Int = t match {
-    case Empty() => 0
-    case Node(_, l, v, r) => size(l) + 1 + size(r)
-  }
-
-  /* We consider leaves to be black by definition */
-  def isBlack(t: Tree) : Boolean = t match {
-    case Empty() => true
-    case Node(Black(),_,_,_) => true
-    case _ => false
-  }
-
-  def redNodesHaveBlackChildren(t: Tree) : Boolean = t match {
-    case Empty() => true
-    case Node(Black(), l, _, r) => redNodesHaveBlackChildren(l) && redNodesHaveBlackChildren(r)
-    case Node(Red(), l, _, r) => isBlack(l) && isBlack(r) && redNodesHaveBlackChildren(l) && redNodesHaveBlackChildren(r)
-  }
-
-  def redDescHaveBlackChildren(t: Tree) : Boolean = t match {
-    case Empty() => true
-    case Node(_,l,_,r) => redNodesHaveBlackChildren(l) && redNodesHaveBlackChildren(r)
-  }
-
-  def blackBalanced(t : Tree) : Boolean = t match {
-    case Node(_,l,_,r) => blackBalanced(l) && blackBalanced(r) && blackHeight(l) == blackHeight(r)
-    case Empty() => true
-  }
-
-  def blackHeight(t : Tree) : Int = t match {
-    case Empty() => 1
-    case Node(Black(), l, _, _) => blackHeight(l) + 1
-    case Node(Red(), l, _, _) => blackHeight(l)
-  }
-
-  // <<insert element x into the tree t>>
-  def ins(x: Int, t: Tree): Tree = {
-    require(redNodesHaveBlackChildren(t) && blackBalanced(t))
-    t match {
-      case Empty() => Node(Red(),Empty(),x,Empty())
-      case Node(c,a,y,b) =>
-        if      (x < y)  balance(c, ins(x, a), y, b)
-        else if (x == y) Node(c,a,y,b)
-        else             balance(c,a,y,ins(x, b))
-    }
-  } ensuring (res => content(res) == content(t) ++ Set(x) 
-                   && size(t) <= size(res) && size(res) <= size(t) + 1
-                   && redDescHaveBlackChildren(res)
-                   && blackBalanced(res))
-
-  def makeBlack(n: Tree): Tree = {
-    require(redDescHaveBlackChildren(n) && blackBalanced(n))
-    n match {
-      case Node(Red(),l,v,r) => Node(Black(),l,v,r)
-      case _ => n
-    }
-  } ensuring(res => redNodesHaveBlackChildren(res) && blackBalanced(res))
-
-  def add(x: Int, t: Tree): Tree = {
-    require(redNodesHaveBlackChildren(t) && blackBalanced(t))
-    makeBlack(ins(x, t))
-  } ensuring (res => content(res) == content(t) ++ Set(x) && redNodesHaveBlackChildren(res) && blackBalanced(res))
-  
-  def buggyAdd(x: Int, t: Tree): Tree = {
-    require(redNodesHaveBlackChildren(t))
-    ins(x, t)
-  } ensuring (res => content(res) == content(t) ++ Set(x) && redNodesHaveBlackChildren(res))
-  
-  def balance(c: Color, a: Tree, x: Int, b: Tree): Tree = {
-    Node(c,a,x,b) match {
-      case Node(Black(),Node(Red(),Node(Red(),a,xV,b),yV,c),zV,d) => 
-        Node(Red(),Node(Black(),a,xV,b),yV,Node(Black(),c,zV,d))
-      case Node(Black(),Node(Red(),a,xV,Node(Red(),b,yV,c)),zV,d) => 
-        Node(Red(),Node(Black(),a,xV,b),yV,Node(Black(),c,zV,d))
-      case Node(Black(),a,xV,Node(Red(),Node(Red(),b,yV,c),zV,d)) => 
-        Node(Red(),Node(Black(),a,xV,b),yV,Node(Black(),c,zV,d))
-      case Node(Black(),a,xV,Node(Red(),b,yV,Node(Red(),c,zV,d))) => 
-        Node(Red(),Node(Black(),a,xV,b),yV,Node(Black(),c,zV,d))
-      case Node(c,a,xV,b) => Node(c,a,xV,b)
-    }
-  } ensuring (res => content(res) == content(Node(c,a,x,b)))
-
-  def buggyBalance(c: Color, a: Tree, x: Int, b: Tree): Tree = {
-    Node(c,a,x,b) match {
-      case Node(Black(),Node(Red(),Node(Red(),a,xV,b),yV,c),zV,d) => 
-        Node(Red(),Node(Black(),a,xV,b),yV,Node(Black(),c,zV,d))
-      case Node(Black(),Node(Red(),a,xV,Node(Red(),b,yV,c)),zV,d) => 
-        Node(Red(),Node(Black(),a,xV,b),yV,Node(Black(),c,zV,d))
-      case Node(Black(),a,xV,Node(Red(),Node(Red(),b,yV,c),zV,d)) => 
-        Node(Red(),Node(Black(),a,xV,b),yV,Node(Black(),c,zV,d))
-      case Node(Black(),a,xV,Node(Red(),b,yV,Node(Red(),c,zV,d))) => 
-        Node(Red(),Node(Black(),a,xV,b),yV,Node(Black(),c,zV,d))
-    }
-  } ensuring (res => content(res) == content(Node(c,a,x,b)))
-}
-  """.trim)
-
-  newExample("Search Linked-List", """
-import scala.collection.immutable.Set
-import leon.Utils._
-import leon.Annotations._
-
-object SearchLinkedList {
-  sealed abstract class List
-  case class Cons(head : Int, tail : List) extends List
-  case class Nil() extends List
-
-  def size(list : List) : Int = (list match {
-    case Nil() => 0
-    case Cons(_, xs) => 1 + size(xs)
-  }) ensuring(_ >= 0)
-
-  def contains(list : List, elem : Int) : Boolean = (list match {
-    case Nil() => false
-    case Cons(x, xs) => x == elem || contains(xs, elem)
-  })
-
-  def firstZero(list : List) : Int = (list match {
-    case Nil() => 0
-    case Cons(x, xs) => if (x == 0) 0 else firstZero(xs) + 1
-  }) ensuring (res =>
-    res >= 0 && (if (contains(list, 0)) {
-      firstZeroAtPos(list, res)
-    } else {
-      res == size(list)
-    }))
-
-  def firstZeroAtPos(list : List, pos : Int) : Boolean = {
-    list match {
-      case Nil() => false
-      case Cons(x, xs) => if (pos == 0) x == 0 else x != 0 && firstZeroAtPos(xs, pos - 1)
-    }
-  } 
-
-  def goal(list : List, i : Int) : Boolean = {
-    if(firstZero(list) == i) {
-      if(contains(list, 0)) {
-        firstZeroAtPos(list, i)
-      } else {
-        i == size(list)
-      }
-    } else {
-      true
-    }
-  } holds
-}
-  """.trim)
-
-  newExample("Sum and Max", """
-import leon.Utils._
-import leon.Annotations._
-
-object SumAndMax {
-  sealed abstract class List
-  case class Cons(head : Int, tail : List) extends List
-  case class Nil() extends List
-
-  def max(list : List) : Int = {
-    require(list != Nil())
-    list match {
-      case Cons(x, Nil()) => x
-      case Cons(x, xs) => {
-        val m2 = max(xs)
-        if(m2 > x) m2 else x
-      }
-    }
-  }
-
-  def sum(list : List) : Int = list match {
-    case Nil() => 0
-    case Cons(x, xs) => x + sum(xs)
-  }
-
-  def size(list : List) : Int = (list match {
-    case Nil() => 0
-    case Cons(_, xs) => 1 + size(xs)
-  }) ensuring(_ >= 0)
-
-  def allPos(list : List) : Boolean = list match {
-    case Nil() => true
-    case Cons(x, xs) => x >= 0 && allPos(xs)
-  }
-
-  def prop0(list : List) : Boolean = {
-    require(list != Nil())
-    !allPos(list) || max(list) >= 0
-  } holds
-
-  @induct
-  def property(list : List) : Boolean = {
-    // This precondition was given in the problem but isn't actually useful :D
-    // require(allPos(list))
-    sum(list) <= size(list) * (if(list == Nil()) 0 else max(list))
-  } holds
-}
-  """.trim)
-}
diff --git a/web/app/models/LeonConsole.scala b/web/app/models/LeonConsole.scala
deleted file mode 100644
index ad3112e7a..000000000
--- a/web/app/models/LeonConsole.scala
+++ /dev/null
@@ -1,195 +0,0 @@
-package leon.web
-package models
-
-import akka.actor._
-import akka.util.duration._
-
-import play.api._
-import play.api.libs.json._
-import play.api.libs.iteratee._
-import play.api.libs.concurrent._
-import play.api.libs.json.Json._
-import play.api.libs.json.Writes._
-
-import akka.util.Timeout
-import akka.pattern.ask
-
-import play.api.Play.current
-
-import leon.{LeonContext, Settings, Reporter}
-import leon.plugin.{TemporaryInputPhase, ExtractionPhase}
-import leon.synthesis.SynthesisPhase
-import leon.verification.AnalysisPhase
-
-object LeonConsole {
-  def open: Promise[(Iteratee[JsValue,_],Enumerator[JsValue])] = {
-    import ConsoleProtocol._
-
-    val session = Akka.system.actorOf(Props[ConsoleSession])
-    implicit val timeout = Timeout(1.seconds)
-
-    (session ? Init).asPromise.map {
-      case InitSuccess(enumerator) =>
-        // Create an Iteratee to consume the feed
-        val iteratee = Iteratee.foreach[JsValue] { event =>
-          (event \ "action").as[String] match {
-            case "start" =>
-              session ! Start((event \ "mode").as[String], (event \ "code").as[String])
-            case "startpower" =>
-              session ! StartPower((event \ "flags").asOpt[String].getOrElse(""), (event \ "code").as[String])
-            case "stop" =>
-              session ! Stop
-            case _ =>
-          }
-        }.mapDone { _ =>
-          session ! Quit
-        }
-
-        (iteratee,enumerator)
-
-      case InitFailure(error: String) =>
-        // Connection error
-
-        // A finished Iteratee sending EOF
-        val iteratee = Done[JsValue,Unit]((),Input.EOF)
-
-        // Send an error and close the socket
-        val enumerator =  Enumerator[JsValue](toJson(
-          Map("kind" -> "error", "message" -> error)
-        )).andThen(Enumerator.enumInput(Input.EOF))
-
-        (iteratee,enumerator)
-    }
-  }
-}
-
-class ConsoleSession extends Actor {
-  import ConsoleProtocol._
-
-  var isStarted = false
-  var channel: PushEnumerator[JsValue] = _
-  var reporter: WSReporter = _
-
-  def log(msg: String) = {
-    channel.push(toJson(Map("kind" -> "log", "message" -> msg)))
-  }
-
-  def error(msg: String) = {
-    channel.push(toJson(Map("kind" -> "error", "message" -> msg)))
-  }
-
-  def event(kind: String) = {
-    channel.push(toJson(Map("kind" -> "event", "event" -> kind)))
-  }
-
-  def receive = {
-    case Init =>
-      channel = Enumerator.imperative[JsValue]()
-      reporter = WSReporter(channel)
-      sender ! InitSuccess(channel)
-
-    case Start(mode, code) =>
-      log("Welcome to LeonOnline!")
-      log("Processing request...")
-
-      val classPath = Play.current.configuration.getString("app.classpath").map(_.split(":").toList).getOrElse(Settings.defaultClassPath())
-
-      mode match {
-        case "verification" =>
-          event("started")
-          isStarted = true
-
-          var ctx = leon.Main.processOptions(reporter, "--timeout=2" :: Nil)
-          ctx = ctx.copy(settings = ctx.settings.copy(classPath = classPath))
-
-          val pipeline = TemporaryInputPhase andThen ExtractionPhase andThen AnalysisPhase
-
-          val analysisResults = pipeline.run(ctx)((code, Nil))
-
-          log(analysisResults.summaryString)
-
-          event("stopped")
-
-        case "synthesis" =>
-          event("started")
-          isStarted = true
-
-          var ctx = leon.Main.processOptions(reporter, "--synthesis" :: "--parallel" :: "--timeout=10" :: Nil)
-          ctx = ctx.copy(settings = ctx.settings.copy(classPath = classPath))
-
-          val pipeline = TemporaryInputPhase andThen ExtractionPhase andThen SynthesisPhase
-
-          pipeline.run(ctx)((code, Nil))
-
-          event("stopped")
-
-        case _ =>
-          error("Invalid request mode: "+mode)
-      }
-
-    case StartPower(flags, code) =>
-      val classPath = Play.current.configuration.getString("app.classpath").map(_.split(":").toList).getOrElse(Settings.defaultClassPath())
-
-      event("started")
-      isStarted = true
-
-      log(""">     ____                          __  __           _        _ 
-             > __ |  _ \ _____      _____ _ __  |  \/  | ___   __| | ___  | | __
-             > __ | |_) / _ \ \ /\ / / _ \ '__| | |\/| |/ _ \ / _` |/ _ \ | | __
-             > __ |  __/ (_) \ V  V /  __/ |    | |  | | (_) | (_| |  __/ |_| __
-             >    |_|   \___/ \_/\_/ \___|_|    |_|  |_|\___/ \__,_|\___| (_)""".stripMargin('>'))
-
-      var ctx = leon.Main.processOptions(reporter, flags.split(" ").filterNot(_.isEmpty).toList)
-      ctx = ctx.copy(settings = ctx.settings.copy(classPath = classPath))
-
-      val pipeline = TemporaryInputPhase andThen leon.Main.computePipeline(ctx.settings)
-
-      pipeline.run(ctx)((code, Nil)) match {
-        case report: leon.verification.VerificationReport => log(report.summaryString)
-        case report: leon.termination.TerminationReport   => log(report.summaryString)
-        case _ => 
-      }
-
-      event("stopped")
-
-    case Stop =>
-      isStarted = false
-
-      event("stopped")
-    case Quit =>
-
-  }
-}
-
-object ConsoleProtocol {
-  case object Init
-  case class InitSuccess(enum: Enumerator[JsValue])
-  case class InitFailure(error: String)
-
-
-  case class Start(mode: String, code: String)
-  case class StartPower(flags : String, code : String)
-
-  case object Stop
-
-  case object Quit
-}
-
-case class WSReporter(channel: PushEnumerator[JsValue]) extends Reporter {
-  def infoFunction(msg: Any) : Unit = {
-    channel.push(toJson(Map("kind" -> "log", "message" -> (msg.toString))))
-  }
-
-  def warningFunction(msg: Any) : Unit = {
-    channel.push(toJson(Map("kind" -> "log", "message" -> ("Warning: "+msg.toString))))
-  }
-
-  def errorFunction(msg: Any) : Unit = {
-    channel.push(toJson(Map("kind" -> "log", "message" -> ("Error: "+msg.toString))))
-  }
-
-  def fatalErrorFunction(msg: Any) : Nothing = {
-    sys.error("FATAL: "+msg)
-  }
-}
-
diff --git a/web/app/views/index.scala.html b/web/app/views/index.scala.html
deleted file mode 100644
index 3bc1aa931..000000000
--- a/web/app/views/index.scala.html
+++ /dev/null
@@ -1,83 +0,0 @@
-@(exs: List[examples.Example], default: examples.Example, prefix: String, powermode : Boolean)(implicit request: RequestHeader)
-
-@main("Leon Online", prefix) {
-  <div id="allcontent">
-    <div id="title" class="contentbox"></div>
-
-    <div id="contact">
-      <p>
-        <i>Leon</i> is developed by the <a alt="LARA Group EPFL" href="http://lara.epfl.ch">LARA</a> group at <a href="http://www.epfl.ch">EPFL</a>.
-      </p>
-    </div>
-    <div id="leonmain" class="contentbox">
-      <form id="leoninput" method="POST" action="">
-        <div id="codecolumn">
-            <div id="codebox">@default.code</div>
-            <div id="subcodebox">
-                @if(powermode) {
-                  <input type="text" id="powerflags" value="--timeout=2" placeholder="add any flags here">
-                }
-                <input type="submit" id="askbutton" value="Run Leon !">
-            </div>
-          <div><textarea id="consolebox"></textarea></div>
-        </div>
-        <div id="selectcolumn">
-          <input type="hidden" id="leon-mode" value="verification">
-          <h3>Load an Example:</h3>
-          <div>We provide you with a list of code-examples, select one from the list below to load it:</div>
-          <select id="example-loader-verification" name="codeexample" onchange="loadExample('verification', '@prefix');">
-            <option value="">-- Load Example --</option>
-            @exs.zipWithIndex.collect{ case (ex, i) if ex.kind == "verification" =>
-            <option value="@i">@ex.title</option>
-            }
-          </select>
-
-        </div>
-      </form>
-      <script>
-        $(document).ready(function() {
-            var WS = window['MozWebSocket'] ? MozWebSocket : WebSocket
-            var leonSocket = new WS("@leon.web.controllers.routes.Application.openConsole().webSocketURL()")
-
-            var receiveEvent = function(event) {
-                var data = JSON.parse(event.data)
-                if (data.kind == "error") {
-                    alert(data.message);
-                } else if (data.kind == "log") {
-                    var txt = $("#consolebox")
-                    txt.val(txt.val()+"\n"+data.message);
-                    txt.scrollTop(txt[0].scrollHeight - txt.height())
-                } else if (data.kind == "event") {
-                    if (data.event == "started") {
-                        $("#askbutton").val("... processing ...")
-                    } else if (data.event == "stopped") {
-                        $("#askbutton").val("Ask Leon!")
-                    }
-                }
-            }
-
-            leonSocket.onmessage = receiveEvent;
-
-            var leonStatus = "stopped";
-
-            $("#leoninput").submit(function () {
-                $("#consolebox").val("");
-
-                @if(!powermode) {
-                var msg = JSON.stringify(
-                  {action: "start", mode: $("#leon-mode").val(), code: editor.getValue()}
-                );
-                } else {
-                var msg = JSON.stringify(
-                  {action: "startpower", flags: $("#powerflags").val(), code: editor.getValue()}
-                );
-                }
-
-                leonSocket.send(msg);
-                return false;
-            });
-        });
-      </script>
-    </div>
-  </div>
-}
diff --git a/web/app/views/main.scala.html b/web/app/views/main.scala.html
deleted file mode 100644
index 5700f9bbf..000000000
--- a/web/app/views/main.scala.html
+++ /dev/null
@@ -1,18 +0,0 @@
-@(title: String, prefix: String)(content: Html)
-
-<!DOCTYPE html>
-
-<html>
-    <head>
-        <title>@title</title>
-        <link href="@prefix@routes.Assets.at("images/lambda-ico.png")" type="image/png" rel="icon">
-        <link rel="stylesheet" media="screen" href="@prefix@routes.Assets.at("stylesheets/leon.css")">
-        <script src="@prefix@routes.Assets.at("javascripts/jquery-1.8.3.min.js")" type="text/javascript"></script>
-        <script src="http://d1n0x3qji82z53.cloudfront.net/src-min-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
-        <script src="@prefix@routes.Assets.at("javascripts/leon.js")" type="text/javascript"></script>
-        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
-    </head>
-    <body>
-        @content
-    </body>
-</html>
diff --git a/web/conf/application.conf b/web/conf/application.conf
deleted file mode 100644
index 6588c4209..000000000
--- a/web/conf/application.conf
+++ /dev/null
@@ -1,52 +0,0 @@
-# This is the main configuration file for the application.
-# ~~~~~
-
-# Secret key
-# ~~~~~
-# The secret key is used to secure cryptographics functions.
-# If you deploy your application to several instances be sure to use the same key!
-application.secret="_JKq[m=o8OG;]F8xD:bGMs^/?KXXb2Huq^KLM=obhIQvsPIwPNJq@sgLWTRCLr4]"
-
-# The application languages
-# ~~~~~
-application.langs="en"
-
-# Global object class
-# ~~~~~
-# Define the Global object class for this application.
-# Default to Global in the root package.
-# global=Global
-
-# Database configuration
-# ~~~~~ 
-# You can declare as many datasources as you want.
-# By convention, the default datasource is named `default`
-#
-# db.default.driver=org.h2.Driver
-# db.default.url="jdbc:h2:mem:play"
-# db.default.user=sa
-# db.default.password=
-
-# Evolutions
-# ~~~~~
-# You can disable evolutions if needed
-# evolutionplugin=disabled
-
-# Logger
-# ~~~~~
-# You can also configure logback (http://logback.qos.ch/), by providing a logger.xml file in the conf directory .
-
-# Root logger:
-logger.root=ERROR
-
-# Logger used by the framework:
-logger.play=INFO
-
-# Logger provided to your application:
-logger.application=DEBUG
-
-# This specifies the prefix under which the web page lies, used almost exclusively for the laraserver setup
-app.prefix=""
-
-# Specifies the classpath used by the Scala compiler within Leon
-# app.classpath="../library/target/scala-2.9.2/"
diff --git a/web/conf/routes b/web/conf/routes
deleted file mode 100644
index 586dc60cb..000000000
--- a/web/conf/routes
+++ /dev/null
@@ -1,12 +0,0 @@
-# Routes
-# This file defines all application routes (Higher priority routes first)
-# ~~~~
-
-# Home page
-GET     /                        leon.web.controllers.Application.index(powermode : Boolean ?= false)
-
-GET     /ajax/getExample/:id     leon.web.controllers.Application.getExample(id: Int)
-GET     /openConsole             leon.web.controllers.Application.openConsole
-
-# Map static resources from the /public folder to the /assets URL path
-GET     /assets/*file            controllers.Assets.at(path="/public", file)
diff --git a/web/lib/cafebabe_2.9.2-1.2.jar b/web/lib/cafebabe_2.9.2-1.2.jar
deleted file mode 120000
index 57d96b33e..000000000
--- a/web/lib/cafebabe_2.9.2-1.2.jar
+++ /dev/null
@@ -1 +0,0 @@
-../../unmanaged/64/cafebabe_2.9.2-1.2.jar
\ No newline at end of file
diff --git a/web/lib/leon_2.9.2-2.0.jar b/web/lib/leon_2.9.2-2.0.jar
deleted file mode 120000
index b9d4360f1..000000000
--- a/web/lib/leon_2.9.2-2.0.jar
+++ /dev/null
@@ -1 +0,0 @@
-../../target/scala-2.9.2/leon_2.9.2-2.0.jar
\ No newline at end of file
diff --git a/web/lib/scalaz3.jar b/web/lib/scalaz3.jar
deleted file mode 120000
index ee09a7a2d..000000000
--- a/web/lib/scalaz3.jar
+++ /dev/null
@@ -1 +0,0 @@
-../../unmanaged/64/scalaz3.jar
\ No newline at end of file
diff --git a/web/project/Build.scala b/web/project/Build.scala
deleted file mode 100644
index 74df43f05..000000000
--- a/web/project/Build.scala
+++ /dev/null
@@ -1,18 +0,0 @@
-import sbt._
-import Keys._
-import PlayProject._
-
-object ApplicationBuild extends Build {
-
-    val appName         = "leononline"
-    val appVersion      = "1.0-SNAPSHOT"
-
-    val appDependencies = Seq(
-      "org.scala-lang" % "scala-compiler" % "2.9.1"
-    )
-
-    val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
-      // Add your own project settings here      
-    )
-
-}
diff --git a/web/project/build.properties b/web/project/build.properties
deleted file mode 100644
index 390c1af8c..000000000
--- a/web/project/build.properties
+++ /dev/null
@@ -1 +0,0 @@
-sbt.version=0.11.3
\ No newline at end of file
diff --git a/web/project/plugins.sbt b/web/project/plugins.sbt
deleted file mode 100644
index 0c091b77f..000000000
--- a/web/project/plugins.sbt
+++ /dev/null
@@ -1,8 +0,0 @@
-// Comment to get more information during initialization
-logLevel := Level.Warn
-
-// The Typesafe repository 
-resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"
-
-// Use the Play sbt plugin for Play projects
-addSbtPlugin("play" % "sbt-plugin" % "2.0.4")
\ No newline at end of file
diff --git a/web/public/images/lambda-ico.png b/web/public/images/lambda-ico.png
deleted file mode 100644
index d87d0876a1d3308a44bf6e53feac00e0c7e0c13a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 587
zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Ea{HEjtmSN`?>!lvNA9*
zuqAoByD<C*!3BGlPiA0X{NU;07!q;#=ym^&-b4|$5BKLvCQ0o&<RrLhVvC0+Hz)U$
zO-YL0iej4=sB!ylPH1f1x-m${Q!Ge`+bhz8H^@cm)BL1AlGmU4?A;q%oc^rt`|RNO
z?eF*Aub#L3`5xQndwS%I3wZKB@*TgpZpn>S$19tb%TEn!mOsM%<$*?<k<jmGPCM@C
zixbzpJyPKGK=_#mW7zt6&J}I@Pu@x{Nvz%De>ne6NK(l|-$jRxTP$hS{;>Z?t65Ix
z_m>rY?5V2)j$U_ZwN_I+r^?c1xPN9!uJDaw#oPNA=dj)~Zr)`infl_q&BDcJgbwt+
zNm!>d`@q^WE6jY{B-thz#b`_K>6*^jn4frl>CvNBxmCfD52~3zc$zE`WLkcjA-+lf
zM`LK>(XA~3-pO3=SZ^$hczyEJhBZ@J{Mb%BO;L%SC-@>)^vAOdoAsMKR|p;UifTLb
z{OHb#Ui%vn&;Q@^Y2E7D6kf2kagX<5QFo3xx|1BrRrcOp@bHd5#~$}|!3WtNjP+Ew
zrE01zw4KX0KQR7ivgEGau|PZ7t9HqS#w>cSi-I5DxIBI32aeC1@~=ItS?uy#>0qpn
zEPJD$%^44#M+{+)t2C-owy0=-uuc2tDjblPIAvYf^Pdg2y?S!YiDtKF<y=jF^x@j0
s?<{HkPn~vI+w9liUum}M&mU$Bg*ho3JytwqU|?YIboFyt=akR{0J38S$N&HU

diff --git a/web/public/images/leonlogo.png b/web/public/images/leonlogo.png
deleted file mode 100644
index 3ed2861d496fbe2a14da33a18ec4579d40280eda..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5301
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
M>FVdQ&MBb@0EYuBmjD0&

diff --git a/web/public/images/lionbkg.png b/web/public/images/lionbkg.png
deleted file mode 100644
index ac1132b132c08414df7adbc295692be2c4d8c7aa..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 115853
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

diff --git a/web/public/javascripts/ace.js b/web/public/javascripts/ace.js
deleted file mode 100644
index 4f60f12e3..000000000
--- a/web/public/javascripts/ace.js
+++ /dev/null
@@ -1,11 +0,0 @@
-(function(){function h(a){var c=function(a,b){return e("",a,b)},f=b;a&&(b[a]||(b[a]={}),f=b[a]);if(!f.define||!f.define.packaged)d.original=f.define,f.define=d,f.define.packaged=!0;if(!f.require||!f.require.packaged)e.original=f.require,f.require=c,f.require.packaged=!0}var a="ace",b=function(){return this}();if(!a&&typeof requirejs!="undefined"){var c=b.define;b.define=function(a,b,d){return typeof d!="function"?c.apply(this,arguments):ace.define(a,b,function(a,c,e){return b[2]=="module"&&(e.packaged=!0),d.apply(this,arguments)})},b.define.packaged=!0;return}var d=function(a,b,c){if(typeof a!="string"){d.original?d.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(c=b),d.modules||(d.modules={}),d.modules[a]=c},e=function(a,b,c){if(Object.prototype.toString.call(b)==="[object Array]"){var d=[];for(var f=0,h=b.length;f<h;++f){var i=g(a,b[f]);if(!i&&e.original)return e.original.apply(window,arguments);d.push(i)}c&&c.apply(null,d)}else{if(typeof b=="string"){var j=g(a,b);return!j&&e.original?e.original.apply(window,arguments):(c&&c(),j)}if(e.original)return e.original.apply(window,arguments)}},f=function(a,b){if(b.indexOf("!")!==-1){var c=b.split("!");return f(a,c[0])+"!"+f(a,c[1])}if(b.charAt(0)=="."){var d=a.split("/").slice(0,-1).join("/");b=d+"/"+b;while(b.indexOf(".")!==-1&&e!=b){var e=b;b=b.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return b},g=function(a,b){b=f(a,b);var c=d.modules[b];if(!c)return null;if(typeof c=="function"){var g={},h={id:b,uri:"",exports:g,packaged:!0},i=function(a,c){return e(b,a,c)},j=c(i,g,h);return g=j||h.exports,d.modules[b]=g,g}return c};h(a)})(),ace.define("ace/requirejs/text",["require","exports","module"],function(a,b,c){b.load=function(b,c,d,e){a("ace/lib/net").get(c.toUrl(b),d)}}),ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/multi_select","ace/worker/worker_client","ace/keyboard/hash_handler","ace/keyboard/state_handler","ace/placeholder","ace/config","ace/theme/textmate"],function(a,b,c){a("./lib/fixoldbrowsers");var d=a("./lib/dom"),e=a("./lib/event"),f=a("./editor").Editor,g=a("./edit_session").EditSession,h=a("./undomanager").UndoManager,i=a("./virtual_renderer").VirtualRenderer,j=a("./multi_select").MultiSelect;a("./worker/worker_client"),a("./keyboard/hash_handler"),a("./keyboard/state_handler"),a("./placeholder"),b.config=a("./config"),b.edit=function(b){typeof b=="string"&&(b=document.getElementById(b));if(b.env&&b.env.editor instanceof f)return b.env.editor;var c=new g(d.getInnerText(b));c.setUndoManager(new h),b.innerHTML="";var k=new f(new i(b,a("./theme/textmate")));new j(k),k.setSession(c);var l={};return l.document=c,l.editor=k,k.resize(),e.addListener(window,"resize",function(){k.resize()}),b.env=l,k.env=l,k}}),ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(a,b,c){a("./regexp"),a("./es5-shim")}),ace.define("ace/lib/regexp",["require","exports","module"],function(a,b,c){function g(a){return(a.global?"g":"")+(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.extended?"x":"")+(a.sticky?"y":"")}function h(a,b,c){if(Array.prototype.indexOf)return a.indexOf(b,c);for(var d=c||0;d<a.length;d++)if(a[d]===b)return d;return-1}var d={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},e=d.exec.call(/()??/,"")[1]===undefined,f=function(){var a=/^/g;return d.test.call(a,""),!a.lastIndex}();if(f&&e)return;RegExp.prototype.exec=function(a){var b=d.exec.apply(this,arguments),c,i;if(typeof a=="string"&&b){!e&&b.length>1&&h(b,"")>-1&&(i=RegExp(this.source,d.replace.call(g(this),"g","")),d.replace.call(a.slice(b.index),i,function(){for(var a=1;a<arguments.length-2;a++)arguments[a]===undefined&&(b[a]=undefined)}));if(this._xregexp&&this._xregexp.captureNames)for(var j=1;j<b.length;j++)c=this._xregexp.captureNames[j-1],c&&(b[c]=b[j]);!f&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--}return b},f||(RegExp.prototype.test=function(a){var b=d.exec.call(this,a);return b&&this.global&&!b[0].length&&this.lastIndex>b.index&&this.lastIndex--,!!b})}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(a,b,c){function p(a){try{return Object.defineProperty(a,"sentinel",{}),"sentinel"in a}catch(b){}}Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=g.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,h=c.apply(f,d.concat(g.call(arguments)));return h!==null&&Object(h)===h?h:f}return c.apply(b,d.concat(g.call(arguments)))};return e});var d=Function.prototype.call,e=Array.prototype,f=Object.prototype,g=e.slice,h=d.bind(f.toString),i=d.bind(f.hasOwnProperty),j,k,l,m,n;if(n=i(f,"__defineGetter__"))j=d.bind(f.__defineGetter__),k=d.bind(f.__defineSetter__),l=d.bind(f.__lookupGetter__),m=d.bind(f.__lookupSetter__);Array.isArray||(Array.isArray=function(b){return h(b)=="[object Array]"}),Array.prototype.forEach||(Array.prototype.forEach=function(b){var c=G(this),d=arguments[1],e=0,f=c.length>>>0;if(h(b)!="[object Function]")throw new TypeError;while(e<f)e in c&&b.call(d,c[e],e,c),e++}),Array.prototype.map||(Array.prototype.map=function(b){var c=G(this),d=c.length>>>0,e=Array(d),f=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var g=0;g<d;g++)g in c&&(e[g]=b.call(f,c[g],g,c));return e}),Array.prototype.filter||(Array.prototype.filter=function(b){var c=G(this),d=c.length>>>0,e=[],f=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var g=0;g<d;g++)g in c&&b.call(f,c[g],g,c)&&e.push(c[g]);return e}),Array.prototype.every||(Array.prototype.every=function(b){var c=G(this),d=c.length>>>0,e=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var f=0;f<d;f++)if(f in c&&!b.call(e,c[f],f,c))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(b){var c=G(this),d=c.length>>>0,e=arguments[1];if(h(b)!="[object Function]")throw new TypeError;for(var f=0;f<d;f++)if(f in c&&b.call(e,c[f],f,c))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(b){var c=G(this),d=c.length>>>0;if(h(b)!="[object Function]")throw new TypeError;if(!d&&arguments.length==1)throw new TypeError;var e=0,f;if(arguments.length>=2)f=arguments[1];else do{if(e in c){f=c[e++];break}if(++e>=d)throw new TypeError}while(!0);for(;e<d;e++)e in c&&(f=b.call(void 0,f,c[e],e,c));return f}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(b){var c=G(this),d=c.length>>>0;if(h(b)!="[object Function]")throw new TypeError;if(!d&&arguments.length==1)throw new TypeError;var e,f=d-1;if(arguments.length>=2)e=arguments[1];else do{if(f in c){e=c[f--];break}if(--f<0)throw new TypeError}while(!0);do f in this&&(e=b.call(void 0,e,c[f],f,c));while(f--);return e}),Array.prototype.indexOf||(Array.prototype.indexOf=function(b){var c=G(this),d=c.length>>>0;if(!d)return-1;var e=0;arguments.length>1&&(e=E(arguments[1])),e=e>=0?e:Math.max(0,d+e);for(;e<d;e++)if(e in c&&c[e]===b)return e;return-1}),Array.prototype.lastIndexOf||(Array.prototype.lastIndexOf=function(b){var c=G(this),d=c.length>>>0;if(!d)return-1;var e=d-1;arguments.length>1&&(e=Math.min(e,E(arguments[1]))),e=e>=0?e:d-Math.abs(e);for(;e>=0;e--)if(e in c&&b===c[e])return e;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(b){return b.__proto__||(b.constructor?b.constructor.prototype:f)});if(!Object.getOwnPropertyDescriptor){var o="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(b,c){if(typeof b!="object"&&typeof b!="function"||b===null)throw new TypeError(o+b);if(!i(b,c))return;var d,e,g;d={enumerable:!0,configurable:!0};if(n){var h=b.__proto__;b.__proto__=f;var e=l(b,c),g=m(b,c);b.__proto__=h;if(e||g)return e&&(d.get=e),g&&(d.set=g),d}return d.value=b[c],d}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(b){return Object.keys(b)}),Object.create||(Object.create=function(b,c){var d;if(b===null)d={__proto__:null};else{if(typeof b!="object")throw new TypeError("typeof prototype["+typeof b+"] != 'object'");var e=function(){};e.prototype=b,d=new e,d.__proto__=b}return c!==void 0&&Object.defineProperties(d,c),d});if(Object.defineProperty){var q=p({}),r=typeof document=="undefined"||p(document.createElement("div"));if(!q||!r)var s=Object.defineProperty}if(!Object.defineProperty||s){var t="Property description must be an object: ",u="Object.defineProperty called on non-object: ",v="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(b,c,d){if(typeof b!="object"&&typeof b!="function"||b===null)throw new TypeError(u+b);if(typeof d!="object"&&typeof d!="function"||d===null)throw new TypeError(t+d);if(s)try{return s.call(Object,b,c,d)}catch(e){}if(i(d,"value"))if(n&&(l(b,c)||m(b,c))){var g=b.__proto__;b.__proto__=f,delete b[c],b[c]=d.value,b.__proto__=g}else b[c]=d.value;else{if(!n)throw new TypeError(v);i(d,"get")&&j(b,c,d.get),i(d,"set")&&k(b,c,d.set)}return b}}Object.defineProperties||(Object.defineProperties=function(b,c){for(var d in c)i(c,d)&&Object.defineProperty(b,d,c[d]);return b}),Object.seal||(Object.seal=function(b){return b}),Object.freeze||(Object.freeze=function(b){return b});try{Object.freeze(function(){})}catch(w){Object.freeze=function(b){return function(c){return typeof c=="function"?c:b(c)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(b){return b}),Object.isSealed||(Object.isSealed=function(b){return!1}),Object.isFrozen||(Object.isFrozen=function(b){return!1}),Object.isExtensible||(Object.isExtensible=function(b){if(Object(b)===b)throw new TypeError;var c="";while(i(b,c))c+="?";b[c]=!0;var d=i(b,c);return delete b[c],d});if(!Object.keys){var x=!0,y=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],z=y.length;for(var A in{toString:null})x=!1;Object.keys=function H(a){if(typeof a!="object"&&typeof a!="function"||a===null)throw new TypeError("Object.keys called on a non-object");var H=[];for(var b in a)i(a,b)&&H.push(b);if(x)for(var c=0,d=z;c<d;c++){var e=y[c];i(a,e)&&H.push(e)}return H}}if(!Date.prototype.toISOString||(new Date(-621987552e5)).toISOString().indexOf("-000001")===-1)Date.prototype.toISOString=function(){var b,c,d,e;if(!isFinite(this))throw new RangeError;b=[this.getUTCMonth()+1,this.getUTCDate(),this.getUTCHours(),this.getUTCMinutes(),this.getUTCSeconds()],e=this.getUTCFullYear(),e=(e<0?"-":e>9999?"+":"")+("00000"+Math.abs(e)).slice(0<=e&&e<=9999?-4:-6),c=b.length;while(c--)d=b[c],d<10&&(b[c]="0"+d);return e+"-"+b.slice(0,2).join("-")+"T"+b.slice(2).join(":")+"."+("000"+this.getUTCMilliseconds()).slice(-3)+"Z"};Date.now||(Date.now=function(){return(new Date).getTime()}),Date.prototype.toJSON||(Date.prototype.toJSON=function(b){if(typeof this.toISOString!="function")throw new TypeError;return this.toISOString()}),Date.parse("+275760-09-13T00:00:00.000Z")!==864e13&&(Date=function(a){var b=function e(b,c,d,f,g,h,i){var j=arguments.length;if(this instanceof a){var k=j==1&&String(b)===b?new a(e.parse(b)):j>=7?new a(b,c,d,f,g,h,i):j>=6?new a(b,c,d,f,g,h):j>=5?new a(b,c,d,f,g):j>=4?new a(b,c,d,f):j>=3?new a(b,c,d):j>=2?new a(b,c):j>=1?new a(b):new a;return k.constructor=e,k}return a.apply(this,arguments)},c=new RegExp("^(\\d{4}|[+-]\\d{6})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.(\\d{3}))?)?(?:Z|(?:([-+])(\\d{2}):(\\d{2})))?)?)?)?$");for(var d in a)b[d]=a[d];return b.now=a.now,b.UTC=a.UTC,b.prototype=a.prototype,b.prototype.constructor=b,b.parse=function(d){var e=c.exec(d);if(e){e.shift();for(var f=1;f<7;f++)e[f]=+(e[f]||(f<3?1:0)),f==1&&e[f]--;var g=+e.pop(),h=+e.pop(),i=e.pop(),j=0;if(i){if(h>23||g>59)return NaN;j=(h*60+g)*6e4*(i=="+"?-1:1)}var k=+e[0];return 0<=k&&k<=99?(e[0]=k+400,a.UTC.apply(this,e)+j-126227808e5):a.UTC.apply(this,e)+j}return a.parse.apply(this,arguments)},b}(Date));var B="	\n\f\r   ᠎              \u2028\u2029";if(!String.prototype.trim||B.trim()){B="["+B+"]";var C=new RegExp("^"+B+B+"*"),D=new RegExp(B+B+"*$");String.prototype.trim=function(){return String(this).replace(C,"").replace(D,"")}}var E=function(a){return a=+a,a!==a?a=0:a!==0&&a!==1/0&&a!==-Infinity&&(a=(a>0||-1)*Math.floor(Math.abs(a))),a},F="a"[0]!="a",G=function(a){if(a==null)throw new TypeError;return F&&typeof a=="string"&&a?a.split(""):Object(a)}}),ace.define("ace/lib/dom",["require","exports","module"],function(a,b,c){var d="http://www.w3.org/1999/xhtml";b.createElement=function(a,b){return document.createElementNS?document.createElementNS(b||d,a):document.createElement(a)},b.setText=function(a,b){a.innerText!==undefined&&(a.innerText=b),a.textContent!==undefined&&(a.textContent=b)},b.hasCssClass=function(a,b){var c=a.className.split(/\s+/g);return c.indexOf(b)!==-1},b.addCssClass=function(a,c){b.hasCssClass(a,c)||(a.className+=" "+c)},b.removeCssClass=function(a,b){var c=a.className.split(/\s+/g);for(;;){var d=c.indexOf(b);if(d==-1)break;c.splice(d,1)}a.className=c.join(" ")},b.toggleCssClass=function(a,b){var c=a.className.split(/\s+/g),d=!0;for(;;){var e=c.indexOf(b);if(e==-1)break;d=!1,c.splice(e,1)}return d&&c.push(b),a.className=c.join(" "),d},b.setCssClass=function(a,c,d){d?b.addCssClass(a,c):b.removeCssClass(a,c)},b.hasCssString=function(a,b){var c=0,d;b=b||document;if(b.createStyleSheet&&(d=b.styleSheets)){while(c<d.length)if(d[c++].owningElement.id===a)return!0}else if(d=b.getElementsByTagName("style"))while(c<d.length)if(d[c++].id===a)return!0;return!1},b.importCssString=function(c,e,f){f=f||document;if(e&&b.hasCssString(e,f))return null;var g;if(f.createStyleSheet)g=f.createStyleSheet(),g.cssText=c,e&&(g.owningElement.id=e);else{g=f.createElementNS?f.createElementNS(d,"style"):f.createElement("style"),g.appendChild(f.createTextNode(c)),e&&(g.id=e);var h=f.getElementsByTagName("head")[0]||f.documentElement;h.appendChild(g)}},b.importCssStylsheet=function(a,c){if(c.createStyleSheet)c.createStyleSheet(a);else{var d=b.createElement("link");d.rel="stylesheet",d.href=a;var e=c.getElementsByTagName("head")[0]||c.documentElement;e.appendChild(d)}},b.getInnerWidth=function(a){return parseInt(b.computedStyle(a,"paddingLeft"),10)+parseInt(b.computedStyle(a,"paddingRight"),10)+a.clientWidth},b.getInnerHeight=function(a){return parseInt(b.computedStyle(a,"paddingTop"),10)+parseInt(b.computedStyle(a,"paddingBottom"),10)+a.clientHeight},window.pageYOffset!==undefined?(b.getPageScrollTop=function(){return window.pageYOffset},b.getPageScrollLeft=function(){return window.pageXOffset}):(b.getPageScrollTop=function(){return document.body.scrollTop},b.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?b.computedStyle=function(a,b){return b?(window.getComputedStyle(a,"")||{})[b]||"":window.getComputedStyle(a,"")||{}}:b.computedStyle=function(a,b){return b?a.currentStyle[b]:a.currentStyle},b.scrollbarWidth=function(a){var c=b.createElement("p");c.style.width="100%",c.style.minWidth="0px",c.style.height="200px";var d=b.createElement("div"),e=d.style;e.position="absolute",e.left="-10000px",e.overflow="hidden",e.width="200px",e.minWidth="0px",e.height="150px",d.appendChild(c);var f=a.body||a.documentElement;f.appendChild(d);var g=c.offsetWidth;e.overflow="scroll";var h=c.offsetWidth;return g==h&&(h=d.clientWidth),f.removeChild(d),g-h},b.setInnerHtml=function(a,b){var c=a.cloneNode(!1);return c.innerHTML=b,a.parentNode.replaceChild(c,a),c},b.setInnerText=function(a,b){var c=a.ownerDocument;c.body&&"textContent"in c.body?a.textContent=b:a.innerText=b},b.getInnerText=function(a){var b=a.ownerDocument;return b.body&&"textContent"in b.body?a.textContent:a.innerText||a.textContent||""},b.getParentWindow=function(a){return a.defaultView||a.parentWindow}}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent","ace/lib/dom"],function(a,b,c){function g(a,b,c){var f=0;!e.isOpera||"KeyboardEvent"in window||!e.isMac?f=0|(b.ctrlKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.metaKey?8:0):f=0|(b.metaKey?1:0)|(b.altKey?2:0)|(b.shiftKey?4:0)|(b.ctrlKey?8:0);if(c in d.MODIFIER_KEYS){switch(d.MODIFIER_KEYS[c]){case"Alt":f=2;break;case"Shift":f=4;break;case"Ctrl":f=1;break;default:f=8}c=0}return f&8&&(c==91||c==93)&&(c=0),!!f||c in d.FUNCTION_KEYS||c in d.PRINTABLE_KEYS?a(b,f,c):!1}var d=a("./keys"),e=a("./useragent"),f=a("./dom");b.addListener=function(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1);if(a.attachEvent){var d=function(){c(window.event)};c._wrapper=d,a.attachEvent("on"+b,d)}},b.removeListener=function(a,b,c){if(a.removeEventListener)return a.removeEventListener(b,c,!1);a.detachEvent&&a.detachEvent("on"+b,c._wrapper||c)},b.stopEvent=function(a){return b.stopPropagation(a),b.preventDefault(a),!1},b.stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},b.preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},b.getButton=function(a){return a.type=="dblclick"?0:a.type=="contextmenu"||a.ctrlKey&&e.isMac?2:a.preventDefault?a.button:{1:0,2:2,4:1}[a.button]},document.documentElement.setCapture?b.capture=function(a,c,d){function f(g){c(g),e||(e=!0,d(g)),b.removeListener(a,"mousemove",c),b.removeListener(a,"mouseup",f),b.removeListener(a,"losecapture",f),a.releaseCapture()}var e=!1;b.addListener(a,"mousemove",c),b.addListener(a,"mouseup",f),b.addListener(a,"losecapture",f),a.setCapture()}:b.capture=function(a,b,c){function d(a){b&&b(a),c&&c(a),document.removeEventListener("mousemove",b,!0),document.removeEventListener("mouseup",d,!0),a.stopPropagation()}document.addEventListener("mousemove",b,!0),document.addEventListener("mouseup",d,!0)},b.addMouseWheelListener=function(a,c){var d=8,e=function(a){a.wheelDelta!==undefined?a.wheelDeltaX!==undefined?(a.wheelX=-a.wheelDeltaX/d,a.wheelY=-a.wheelDeltaY/d):(a.wheelX=0,a.wheelY=-a.wheelDelta/d):a.axis&&a.axis==a.HORIZONTAL_AXIS?(a.wheelX=(a.detail||0)*5,a.wheelY=0):(a.wheelX=0,a.wheelY=(a.detail||0)*5),c(a)};b.addListener(a,"DOMMouseScroll",e),b.addListener(a,"mousewheel",e)},b.addMultiMouseDownListener=function(a,c,d,f){var g=0,h,i,j,k={2:"dblclick",3:"tripleclick",4:"quadclick"};b.addListener(a,"mousedown",function(a){if(b.getButton(a)!=0)g=0;else{var e=Math.abs(a.clientX-h)>5||Math.abs(a.clientY-i)>5;if(!j||e)g=0;g+=1,j&&clearTimeout(j),j=setTimeout(function(){j=null},c[g-1]||600)}g==1&&(h=a.clientX,i=a.clientY),d[f]("mousedown",a);if(g>4)g=0;else if(g>1)return d[f](k[g],a)}),e.isOldIE&&b.addListener(a,"dblclick",function(a){g=2,j&&clearTimeout(j),j=setTimeout(function(){j=null},c[g-1]||600),d[f]("mousedown",a),d[f](k[g],a)})},b.addCommandKeyListener=function(a,c){var d=b.addListener;if(e.isOldGecko||e.isOpera&&!("KeyboardEvent"in window)){var f=null;d(a,"keydown",function(a){f=a.keyCode}),d(a,"keypress",function(a){return g(c,a,f)})}else{var h=null;d(a,"keydown",function(a){return h=a.keyIdentifier||a.keyCode,g(c,a,a.keyCode)})}};if(window.postMessage&&!e.isOldIE){var h=1;b.nextTick=function(a,c){c=c||window;var d="zero-timeout-message-"+h;b.addListener(c,"message",function e(f){f.data==d&&(b.stopPropagation(f),b.removeListener(c,"message",e),a())}),c.postMessage(d,"*")}}else b.nextTick=function(a,b){b=b||window,window.setTimeout(a,0)}}),ace.define("ace/lib/keys",["require","exports","module","ace/lib/oop"],function(a,b,c){var d=a("./oop"),e=function(){var a={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"}};for(var b in a.FUNCTION_KEYS){var c=a.FUNCTION_KEYS[b].toUpperCase();a[c]=parseInt(b,10)}return d.mixin(a,a.MODIFIER_KEYS),d.mixin(a,a.PRINTABLE_KEYS),d.mixin(a,a.FUNCTION_KEYS),a}();d.mixin(b,e),b.keyCodeToString=function(a){return(e[a]||String.fromCharCode(a)).toLowerCase()}}),ace.define("ace/lib/oop",["require","exports","module"],function(a,b,c){b.inherits=function(){var a=function(){};return function(b,c){a.prototype=c.prototype,b.super_=c.prototype,b.prototype=new a,b.prototype.constructor=b}}(),b.mixin=function(a,b){for(var c in b)a[c]=b[c]},b.implement=function(a,c){b.mixin(a,c)}}),ace.define("ace/lib/useragent",["require","exports","module"],function(a,b,c){var d=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),e=navigator.userAgent;b.isWin=d=="win",b.isMac=d=="mac",b.isLinux=d=="linux",b.isIE=navigator.appName=="Microsoft Internet Explorer"&&parseFloat(navigator.userAgent.match(/MSIE ([0-9]+[\.0-9]+)/)[1]),b.isOldIE=b.isIE&&b.isIE<9,b.isGecko=b.isMozilla=window.controllers&&window.navigator.product==="Gecko",b.isOldGecko=b.isGecko&&parseInt((navigator.userAgent.match(/rv\:(\d+)/)||[])[1],10)<4,b.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]",b.isWebKit=parseFloat(e.split("WebKit/")[1])||undefined,b.isChrome=parseFloat(e.split(" Chrome/")[1])||undefined,b.isAIR=e.indexOf("AdobeAIR")>=0,b.isIPad=e.indexOf("iPad")>=0,b.isTouchPad=e.indexOf("TouchPad")>=0,b.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},b.getOS=function(){return b.isMac?b.OS.MAC:b.isLinux?b.OS.LINUX:b.OS.WINDOWS}}),ace.define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands"],function(a,b,c){a("./lib/fixoldbrowsers");var d=a("./lib/oop"),e=a("./lib/lang"),f=a("./lib/useragent"),g=a("./keyboard/textinput").TextInput,h=a("./mouse/mouse_handler").MouseHandler,i=a("./mouse/fold_handler").FoldHandler,j=a("./keyboard/keybinding").KeyBinding,k=a("./edit_session").EditSession,l=a("./search").Search,m=a("./range").Range,n=a("./lib/event_emitter").EventEmitter,o=a("./commands/command_manager").CommandManager,p=a("./commands/default_commands").commands,q=function(a,b){var c=a.getContainerElement();this.container=c,this.renderer=a,this.commands=new o(f.isMac?"mac":"win",p),this.textInput=new g(a.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.keyBinding=new j(this),f.isIPad||(this.$mouseHandler=new h(this),new i(this)),this.$blockScrolling=0,this.$search=(new l).set({wrap:!0}),this.setSession(b||new k(""))};(function(){d.implement(this,n),this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a)},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(a){if(this.session==a)return;if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange),this.session.removeEventListener("changeMode",this.$onChangeMode),this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.session.removeEventListener("changeTabSize",this.$onChangeTabSize),this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode),this.session.removeEventListener("onChangeFold",this.$onChangeFold),this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker),this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation),this.session.removeEventListener("changeOverwrite",this.$onCursorChange),this.session.removeEventListener("changeScrollTop",this.$onScrollTopChange),this.session.removeEventListener("changeLeftTop",this.$onScrollLeftChange);var c=this.session.getSelection();c.removeEventListener("changeCursor",this.$onCursorChange),c.removeEventListener("changeSelection",this.$onSelectionChange)}this.session=a,this.$onDocumentChange=this.onDocumentChange.bind(this),a.addEventListener("change",this.$onDocumentChange),this.renderer.setSession(a),this.$onChangeMode=this.onChangeMode.bind(this),a.addEventListener("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),a.addEventListener("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),a.addEventListener("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),a.addEventListener("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.addEventListener("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.addEventListener("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.addEventListener("changeScrollLeft",this.$onScrollLeftChange),this.selection=a.getSelection(),this.selection.addEventListener("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.addEventListener("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull(),this._emit("changeSession",{session:a,oldSession:b})},this.getSession=function(){return this.session},this.setValue=function(a,b){return this.session.doc.setValue(a),b?b==1?this.navigateFileEnd():b==-1&&this.navigateFileStart():this.selectAll(),a},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(a){this.renderer.onResize(a)},this.setTheme=function(a){this.renderer.setTheme(a)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(a){this.renderer.setStyle(a)},this.unsetStyle=function(a){this.renderer.unsetStyle(a)},this.setFontSize=function(a){this.container.style.fontSize=a,this.renderer.updateFontSize()},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(this.$highlightPending)return;var a=this;this.$highlightPending=!0,setTimeout(function(){a.$highlightPending=!1;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b){var c=new m(b.row,b.column,b.row,b.column+1);a.session.$bracketHighlight=a.session.addMarker(c,"ace_bracket","text")}},10)},this.focus=function(){var a=this;setTimeout(function(){a.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(){if(this.$isFocused)return;this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus")},this.onBlur=function(){if(!this.$isFocused)return;this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur")},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(a){var b=a.data,c=b.range,d;c.start.row==c.end.row&&b.action!="insertLines"&&b.action!="removeLines"?d=c.end.row:d=Infinity,this.renderer.updateLines(c.start.row,d),this._emit("change",a),this.$cursorChange()},this.onTokenizerUpdate=function(a){var b=a.data;this.renderer.updateLines(b.first,b.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||this.renderer.scrollCursorIntoView(),this.$highlightBrackets(),this.$updateHighlightActiveLine(),this._emit("changeSelection")},this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker),a.$highlightLineMarker=null;if(this.$highlightActiveLine){var b=this.getCursorPosition(),c=this.session.getFoldLine(b.row);if(this.getSelectionStyle()!="line"||!this.selection.isMultiLine()){var d;c?d=new m(c.start.row,0,c.end.row+1,0):d=new m(b.row,0,b.row+1,0),a.$highlightLineMarker=a.addMarker(d,"ace_active_line","background")}}},this.onSelectionChange=function(a){var b=this.session;b.$selectionMarker&&b.removeMarker(b.$selectionMarker),b.$selectionMarker=null;if(!this.selection.isEmpty()){var c=this.selection.getRange(),d=this.getSelectionStyle();b.$selectionMarker=b.addMarker(c,"ace_selection",d)}else this.$updateHighlightActiveLine();var e=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(e),this._emit("changeSelection")},this.$getSelectionHighLightRegexp=function(){var a=this.session,b=this.getSelectionRange();if(b.isEmpty()||b.isMultiLine())return;var c=b.start.column-1,d=b.end.column+1,e=a.getLine(b.start.row),f=e.length,g=e.substring(Math.max(c,0),Math.min(d,f));if(c>=0&&/^[\w\d]/.test(g)||d<=f&&/[\w\d]$/.test(g))return;g=e.substring(b.start.column,b.end.column);if(!/^[\w\d]+$/.test(g))return;var h=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:g});return h},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(){this.renderer.updateText()},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getCopyText=function(){var a="";return this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange())),this._emit("copy",a),a},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(a){if(this.$readOnly)return;this._emit("paste",a),this.insert(a)},this.insert=function(a){var b=this.session,c=b.getMode(),d=this.getCursorPosition();if(this.getBehavioursEnabled()){var e=c.transformAction(b.getState(d.row),"insertion",this,b,a);e&&(a=e.text)}a=a.replace("	",this.session.getTabString());if(!this.selection.isEmpty())d=this.session.remove(this.getSelectionRange()),this.clearSelection();else if(this.session.getOverwrite()){var f=new m.fromPoints(d,d);f.end.column+=a.length,this.session.remove(f)}this.clearSelection();var g=d.column,h=b.getState(d.row),i=c.checkOutdent(h,b.getLine(d.row),a),j=b.getLine(d.row),k=c.getNextLineIndent(h,j.slice(0,d.column),b.getTabString()),l=b.insert(d,a);e&&e.selection&&(e.selection.length==2?this.selection.setSelectionRange(new m(d.row,g+e.selection[0],d.row,g+e.selection[1])):this.selection.setSelectionRange(new m(d.row+e.selection[0],e.selection[1],d.row+e.selection[2],e.selection[3])));var h=b.getState(d.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(d.row+1,0);var n=b.getTabSize(),o=Number.MAX_VALUE;for(var p=d.row+1;p<=l.row;++p){var q=0;j=b.getLine(p);for(var r=0;r<j.length;++r)if(j.charAt(r)=="	")q+=n;else{if(j.charAt(r)!=" ")break;q+=1}/[^\s]/.test(j)&&(o=Math.min(q,o))}for(var p=d.row+1;p<=l.row;++p){var s=o;j=b.getLine(p);for(var r=0;r<j.length&&s>0;++r)j.charAt(r)=="	"?s-=n:j.charAt(r)==" "&&(s-=1);b.remove(new m(p,0,p,r))}b.indentRows(d.row+1,l.row,k)}i&&c.autoOutdent(h,b,d.row)},this.onTextInput=function(a){this.keyBinding.onTextInput(a)},this.onCommandKey=function(a,b,c){this.keyBinding.onCommandKey(a,b,c)},this.setOverwrite=function(a){this.session.setOverwrite(a)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a)},this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed()},this.setDragDelay=function(a){this.$mouseHandler.setDragDelay(a)},this.getDragDelay=function(){return this.$mouseHandler.getDragDelay()},this.$selectionStyle="line",this.setSelectionStyle=function(a){if(this.$selectionStyle==a)return;this.$selectionStyle=a,this.onSelectionChange(),this._emit("changeSelectionStyle",{data:a})},this.getSelectionStyle=function(){return this.$selectionStyle},this.$highlightActiveLine=!0,this.setHighlightActiveLine=function(a){if(this.$highlightActiveLine==a)return;this.$highlightActiveLine=a,this.$updateHighlightActiveLine()},this.getHighlightActiveLine=function(){return this.$highlightActiveLine},this.$highlightGutterLine=!0,this.setHighlightGutterLine=function(a){if(this.$highlightGutterLine==a)return;this.renderer.setHighlightGutterLine(a),this.$highlightGutterLine=a},this.getHighlightGutterLine=function(){return this.$highlightGutterLine},this.$highlightSelectedWord=!0,this.setHighlightSelectedWord=function(a){if(this.$highlightSelectedWord==a)return;this.$highlightSelectedWord=a,this.$onSelectionChange()},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(a){this.renderer.setAnimatedScroll(a)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(a){this.renderer.setShowInvisibles(a)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(a){this.renderer.setDisplayIndentGuides(a)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.$readOnly=!1,this.setReadOnly=function(a){this.$readOnly=a},this.getReadOnly=function(){return this.$readOnly},this.$modeBehaviours=!0,this.setBehavioursEnabled=function(a){this.$modeBehaviours=a},this.getBehavioursEnabled=function(){return this.$modeBehaviours},this.setShowFoldWidgets=function(a){var b=this.renderer.$gutterLayer;if(b.getShowFoldWidgets()==a)return;this.renderer.$gutterLayer.setShowFoldWidgets(a),this.$showFoldWidgets=a,this.renderer.updateFull()},this.getShowFoldWidgets=function(){return this.renderer.$gutterLayer.getShowFoldWidgets()},this.setFadeFoldWidgets=function(a){this.renderer.setFadeFoldWidgets(a)},this.getFadeFoldWidgets=function(){return this.renderer.getFadeFoldWidgets()},this.remove=function(a){this.selection.isEmpty()&&(a=="left"?this.selection.selectLeft():this.selection.selectRight());var b=this.getSelectionRange();if(this.getBehavioursEnabled()){var c=this.session,d=c.getState(b.start.row),e=c.getMode().transformAction(d,"deletion",this,c,b);e&&(b=e)}this.session.remove(b),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();a.start.column==a.end.column&&a.start.row==a.end.row&&(a.end.column=0,a.end.row++),this.session.remove(a),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(a)},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var a=this.getCursorPosition(),b=a.column;if(b===0)return;var c=this.session.getLine(a.row),d,e;b<c.length?(d=c.charAt(b)+c.charAt(b-1),e=new m(a.row,b-1,a.row,b+1)):(d=c.charAt(b-1)+c.charAt(b-2),e=new m(a.row,b-2,a.row,b)),this.session.replace(e,d)},this.toLowerCase=function(){var a=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var b=this.getSelectionRange(),c=this.session.getTextRange(b);this.session.replace(b,c.toLowerCase()),this.selection.setSelectionRange(a)},this.toUpperCase=function(){var a=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var b=this.getSelectionRange(),c=this.session.getTextRange(b);this.session.replace(b,c.toUpperCase()),this.selection.setSelectionRange(a)},this.indent=function(){var a=this.session,b=this.getSelectionRange();if(!(b.start.row<b.end.row||b.start.column<b.end.column)){var d;if(this.session.getUseSoftTabs()){var f=a.getTabSize(),g=this.getCursorPosition(),h=a.documentToScreenColumn(g.row,g.column),i=f-h%f;d=e.stringRepeat(" ",i)}else d="	";return this.insert(d)}var c=this.$getSelectedRows();a.indentRows(c.first,c.last,"	")},this.blockOutdent=function(){var a=this.session.getSelection();this.session.outdentRows(a.getRange())},this.toggleCommentLines=function(){var a=this.session.getState(this.getCursorPosition().row),b=this.$getSelectedRows();this.session.getMode().toggleCommentLines(a,this.session,b.first,b.last)},this.removeLines=function(){var a=this.$getSelectedRows(),b;a.first===0||a.last+1<this.session.getLength()?b=new m(a.first,0,a.last+1,0):b=new m(a.first-1,this.session.getLine(a.first-1).length,a.last,this.session.getLine(a.last).length),this.session.remove(b),this.clearSelection()},this.duplicateSelection=function(){var a=this.selection,b=this.session,c=a.getRange();if(c.isEmpty()){var d=c.start.row;b.duplicateLines(d,d)}else{var e=a.isBackwards(),f=a.isBackwards()?c.start:c.end,g=b.insert(f,b.getTextRange(c),!1);c.start=f,c.end=g,a.setSelectionRange(c,e)}},this.moveLinesDown=function(){this.$moveLines(function(a,b){return this.session.moveLinesDown(a,b)})},this.moveLinesUp=function(){this.$moveLines(function(a,b){return this.session.moveLinesUp(a,b)})},this.moveText=function(a,b){return this.$readOnly?null:this.session.moveText(a,b)},this.copyLinesUp=function(){this.$moveLines(function(a,b){return this.session.duplicateLines(a,b),0})},this.copyLinesDown=function(){this.$moveLines(function(a,b){return this.session.duplicateLines(a,b)})},this.$moveLines=function(a){var b=this.$getSelectedRows(),c=this.selection;if(!c.isMultiLine())var d=c.getRange(),e=c.isBackwards();var f=a.call(this,b.first,b.last);d?(d.start.row+=f,d.end.row+=f,c.setSelectionRange(d,e)):(c.setSelectionAnchor(b.last+f+1,0),c.$moveSelection(function(){c.moveCursorTo(b.first+f,0)}))},this.$getSelectedRows=function(){var a=this.getSelectionRange().collapseRows();return{first:a.start.row,last:a.end.row}},this.onCompositionStart=function(a){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(a){this.renderer.setCompositionText(a)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(a){return a>=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow()},this.isRowFullyVisible=function(a){return a>=this.renderer.getFirstFullyVisibleRow()&&a<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(a,b){var c=this.renderer,d=this.renderer.layerConfig,e=a*Math.floor(d.height/d.lineHeight);this.$blockScrolling++,b==1?this.selection.$moveSelection(function(){this.moveCursorBy(e,0)}):b==0&&(this.selection.moveCursorBy(e,0),this.selection.clearSelection()),this.$blockScrolling--;var f=c.scrollTop;c.scrollBy(0,e*d.lineHeight),b!=null&&c.scrollCursorIntoView(null,.5),c.animateScrolling(f)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(a){this.renderer.scrollToRow(a)},this.scrollToLine=function(a,b,c,d){this.renderer.scrollToLine(a,b,c,d)},this.centerSelection=function(){var a=this.getSelectionRange(),b={row:Math.floor(a.start.row+(a.end.row-a.start.row)/2),column:Math.floor(a.start.column+(a.end.column-a.start.column)/2)};this.renderer.alignCursor(b,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(a,b){this.selection.moveCursorTo(a,b)},this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a)},this.jumpToMatching=function(a){var b=this.getCursorPosition(),c=this.session.getBracketRange(b);if(!c){c=this.find({needle:/[{}()\[\]]/g,preventScroll:!0,start:{row:b.row,column:b.column-1}});if(!c)return;var d=c.start;d.row==b.row&&Math.abs(d.column-b.column)<2&&(c=this.session.getBracketRange(d))}d=c&&c.cursor||d,d&&(a?c&&c.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(d.row,d.column):(this.clearSelection(),this.moveCursorTo(d.row,d.column)))},this.gotoLine=function(a,b,c){this.selection.clearSelection(),this.session.unfold({row:a-1,column:b||0}),this.$blockScrolling+=1,this.moveCursorTo(a-1,b||0),this.$blockScrolling-=1,this.isRowFullyVisible(a-1)||this.scrollToLine(a-1,!0,c)},this.navigateTo=function(a,b){this.clearSelection(),this.moveCursorTo(a,b)},this.navigateUp=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(-a,0)},this.navigateDown=function(a){this.selection.clearSelection(),a=a||1,this.selection.moveCursorBy(a,0)},this.navigateLeft=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().start;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(a){if(!this.selection.isEmpty()){var b=this.getSelectionRange().end;this.moveCursorToPosition(b)}else{a=a||1;while(a--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){var a=this.renderer.scrollTop;this.selection.moveCursorFileEnd(),this.clearSelection(),this.renderer.animateScrolling(a)},this.navigateFileStart=function(){var a=this.renderer.scrollTop;this.selection.moveCursorFileStart(),this.clearSelection(),this.renderer.animateScrolling(a)},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(a,b){b&&this.$search.set(b);var c=this.$search.find(this.session),d=0;return c?(this.$tryReplace(c,a)&&(d=1),c!==null&&(this.selection.setSelectionRange(c),this.renderer.scrollSelectionIntoView(c.start,c.end)),d):d},this.replaceAll=function(a,b){b&&this.$search.set(b);var c=this.$search.findAll(this.session),d=0;if(!c.length)return d;this.$blockScrolling+=1;var e=this.getSelectionRange();this.clearSelection(),this.selection.moveCursorTo(0,0);for(var f=c.length-1;f>=0;--f)this.$tryReplace(c[f],a)&&d++;return this.selection.setSelectionRange(e),this.$blockScrolling-=1,d},this.$tryReplace=function(a,b){var c=this.session.getTextRange(a);return b=this.$search.replace(c,b),b!==null?(a.end=this.session.replace(a,b),a):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(a,b,c){b||(b={}),typeof a=="string"||a instanceof RegExp?b.needle=a:typeof a=="object"&&d.mixin(b,a);var e=this.selection.getRange();b.needle==null&&(a=this.session.getTextRange(e)||this.$search.$options.needle,a||(e=this.session.getWordRange(e.start.row,e.start.column),a=this.session.getTextRange(e)),this.$search.set({needle:a})),this.$search.set(b),b.start||this.$search.set({start:e});var f=this.$search.find(this.session);if(b.preventScroll)return f;if(f)return this.revealRange(f,c),f;b.backwards?e.start=e.end:e.end=e.start,this.selection.setRange(e)},this.findNext=function(a,b){this.find({skipCurrent:!0,backwards:!1},a,b)},this.findPrevious=function(a,b){this.find(a,{skipCurrent:!0,backwards:!0},b)},this.revealRange=function(a,b){this.$blockScrolling+=1,this.session.unfold(a),this.selection.setSelectionRange(a),this.$blockScrolling-=1;var c=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(a.start,a.end,.5),b!=0&&this.renderer.animateScrolling(c)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy()}}).call(q.prototype),b.Editor=q}),ace.define("ace/lib/lang",["require","exports","module"],function(a,b,c){b.stringReverse=function(a){return a.split("").reverse().join("")},b.stringRepeat=function(a,b){return(new Array(b+1)).join(a)};var d=/^\s\s*/,e=/\s\s*$/;b.stringTrimLeft=function(a){return a.replace(d,"")},b.stringTrimRight=function(a){return a.replace(e,"")},b.copyObject=function(a){var b={};for(var c in a)b[c]=a[c];return b},b.copyArray=function(a){var b=[];for(var c=0,d=a.length;c<d;c++)a[c]&&typeof a[c]=="object"?b[c]=this.copyObject(a[c]):b[c]=a[c];return b},b.deepCopy=function(a){if(typeof a!="object")return a;var b=a.constructor();for(var c in a)typeof a[c]=="object"?b[c]=this.deepCopy(a[c]):b[c]=a[c];return b},b.arrayToMap=function(a){var b={};for(var c=0;c<a.length;c++)b[a[c]]=1;return b},b.createMap=function(a){var b=Object.create(null);for(var c in a)b[c]=a[c];return b},b.arrayRemove=function(a,b){for(var c=0;c<=a.length;c++)b===a[c]&&a.splice(c,1)},b.escapeRegExp=function(a){return a.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},b.getMatchOffsets=function(a,b){var c=[];return a.replace(b,function(a){c.push({offset:arguments[arguments.length-2],length:a.length})}),c},b.deferredCall=function(a){var b=null,c=function(){b=null,a()},d=function(a){return d.cancel(),b=setTimeout(c,a||0),d};return d.schedule=d,d.call=function(){return this.cancel(),a(),d},d.cancel=function(){return clearTimeout(b),b=null,d},d}}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom"],function(a,b,c){var d=a("../lib/event"),e=a("../lib/useragent"),f=a("../lib/dom"),g=function(a,b){function l(a){try{a?(c.value=g,c.selectionStart=0,c.selectionEnd=1):c.select()}catch(b){}}function m(a){if(!i){var d=a||c.value;d&&(d.length>1&&(d.charAt(0)==g?d=d.substr(1):d.charAt(d.length-1)==g&&(d=d.slice(0,-1))),d&&d!=g&&(j?b.onPaste(d):b.onTextInput(d)))}i=!1,j=!1,l(!0)}function v(){return document.activeElement===c}function w(){setTimeout(function(){k&&(c.style.cssText=k,k=""),m(),b.renderer.$keepTextAreaAtCursor==null&&(b.renderer.$keepTextAreaAtCursor=!0,b.renderer.$moveTextAreaToCursor())},0)}var c=f.createElement("textarea");e.isTouchPad&&c.setAttribute("x-palm-disable-auto-cap",!0),c.setAttribute("wrap","off"),c.style.top="-2em",a.insertBefore(c,a.firstChild);var g=e.isIE?"":"";m();var h=!1,i=!1,j=!1,k="",n=function(a){h||m(a.data),setTimeout(function(){h||l(!0)},0)},o=function(a){setTimeout(function(){h||c.value!=""&&m()},0)},p=function(a){h=!0,b.onCompositionStart(),setTimeout(q,0)},q=function(){if(!h)return;b.onCompositionUpdate(c.value)},r=function(a){h=!1,b.onCompositionEnd()},s=function(a){i=!0;var d=b.getCopyText();d?c.value=d:a.preventDefault(),l(),setTimeout(function(){m()},0)},t=function(a){i=!0;var d=b.getCopyText();d?(c.value=d,b.onCut()):a.preventDefault(),l(),setTimeout(function(){m()},0)};d.addCommandKeyListener(c,b.onCommandKey.bind(b)),d.addListener(c,"input",n);if(e.isOldIE){var u={13:1,27:1};d.addListener(c,"keyup",function(a){h&&(!c.value||u[a.keyCode])&&setTimeout(r,0);if((c.value.charCodeAt(0)|0)<129)return;h?q():p()}),d.addListener(c,"propertychange",function(){c.value!=g&&setTimeout(m,0)})}d.addListener(c,"paste",function(a){j=!0,a.clipboardData&&a.clipboardData.getData?(m(a.clipboardData.getData("text/plain")),a.preventDefault()):o()}),"onbeforecopy"in c&&typeof clipboardData!="undefined"?(d.addListener(c,"beforecopy",function(a){if(k)return;var c=b.getCopyText();c?clipboardData.setData("Text",c):a.preventDefault()}),d.addListener(a,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var c=b.getCopyText();c&&(clipboardData.setData("Text",c),b.onCut()),d.preventDefault(a)}}),d.addListener(c,"cut",t)):!e.isOpera||"KeyboardEvent"in window?(d.addListener(c,"copy",s),d.addListener(c,"cut",t)):d.addListener(a,"keydown",function(a){if(e.isMac&&!a.metaKey||!a.ctrlKey)return;if(a.keyCode==88||a.keyCode==67){var d=b.getCopyText();d&&(c.value=d,c.select(),a.keyCode==88&&b.onCut())}}),d.addListener(c,"compositionstart",p),e.isGecko&&d.addListener(c,"text",q),e.isWebKit&&d.addListener(c,"keyup",q),d.addListener(c,"compositionend",r),d.addListener(c,"blur",function(){b.onBlur()}),d.addListener(c,"focus",function(){b.onFocus(),l()}),this.focus=function(){l(),c.focus()},this.blur=function(){c.blur()},this.isFocused=v,this.getElement=function(){return c},this.onContextMenu=function(a){k||(k=c.style.cssText),c.style.cssText="position:fixed; z-index:100000;"+(e.isIE?"background:rgba(0, 0, 0, 0.03); opacity:0.1;":"")+"left:"+(a.clientX-2)+"px; top:"+(a.clientY-2)+"px;",b.selection.isEmpty()?c.value="":l(!0);if(a.type!="mousedown")return;b.renderer.$keepTextAreaAtCursor&&(b.renderer.$keepTextAreaAtCursor=null),e.isWin&&(e.isGecko||e.isIE)&&d.capture(b.container,function(a){c.style.left=a.clientX-2+"px",c.style.top=a.clientY-2+"px"},w)},this.onContextMenuClose=w,e.isGecko||d.addListener(c,"contextmenu",function(a){b.textInput.onContextMenu(a),w()})};b.TextInput=g}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop"],function(a,b,c){var d=a("../lib/event"),e=a("../lib/useragent"),f=a("./default_handlers").DefaultHandlers,g=a("./default_gutter_handler").GutterHandler,h=a("./mouse_event").MouseEvent,i=a("./dragdrop").DragdropHandler,j=function(a){this.editor=a,new f(this),new g(this),new i(this),d.addListener(a.container,"mousedown",function(b){return a.focus(),d.preventDefault(b)});var b=a.renderer.getMouseEventTarget();d.addListener(b,"click",this.onMouseEvent.bind(this,"click")),d.addListener(b,"mousemove",this.onMouseMove.bind(this,"mousemove")),d.addMultiMouseDownListener(b,[300,300,250],this,"onMouseEvent"),d.addMouseWheelListener(a.container,this.onMouseWheel.bind(this,"mousewheel"));var c=a.renderer.$gutter;d.addListener(c,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),d.addListener(c,"click",this.onMouseEvent.bind(this,"gutterclick")),d.addListener(c,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),d.addListener(c,"mousemove",this.onMouseEvent.bind(this,"guttermousemove"))};(function(){this.$scrollSpeed=1,this.setScrollSpeed=function(a){this.$scrollSpeed=a},this.getScrollSpeed=function(){return this.$scrollSpeed},this.onMouseEvent=function(a,b){this.editor._emit(a,new h(b,this.editor))},this.$dragDelay=250,this.setDragDelay=function(a){this.$dragDelay=a},this.getDragDelay=function(){return this.$dragDelay},this.onMouseMove=function(a,b){var c=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!c||!c.length)return;this.editor._emit(a,new h(b,this.editor))},this.onMouseWheel=function(a,b){var c=new h(b,this.editor);c.speed=this.$scrollSpeed*2,c.wheelX=b.wheelX,c.wheelY=b.wheelY,this.editor._emit(a,c)},this.setState=function(a){this.state=a},this.captureMouse=function(a,b){b&&this.setState(b),this.x=a.x,this.y=a.y;var c=this.editor.renderer;c.$keepTextAreaAtCursor&&(c.$keepTextAreaAtCursor=null);var f=this,g=function(a){f.x=a.clientX,f.y=a.clientY},h=function(a){clearInterval(j),f[f.state+"End"]&&f[f.state+"End"](a),f.$clickSelection=null,c.$keepTextAreaAtCursor==null&&(c.$keepTextAreaAtCursor=!0,c.$moveTextAreaToCursor())},i=function(){f[f.state]&&f[f.state]()};if(e.isOldIE&&a.domEvent.type=="dblclick"){setTimeout(function(){i(),h(a.domEvent)});return}d.capture(this.editor.container,g,h);var j=setInterval(i,20)}}).call(j.prototype),b.MouseHandler=j}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/useragent"],function(a,b,c){function g(a){a.$clickSelection=null;var b=a.editor;b.setDefaultHandler("mousedown",this.onMouseDown.bind(a)),b.setDefaultHandler("dblclick",this.onDoubleClick.bind(a)),b.setDefaultHandler("tripleclick",this.onTripleClick.bind(a)),b.setDefaultHandler("quadclick",this.onQuadClick.bind(a)),b.setDefaultHandler("mousewheel",this.onScroll.bind(a));var c=["select","startSelect","drag","dragEnd","dragWait","dragWaitEnd","startDrag","focusWait"];c.forEach(function(b){a[b]=this[b]},this),a.selectByLines=this.extendSelectionBy.bind(a,"getLineRange"),a.selectByWords=this.extendSelectionBy.bind(a,"getWordRange"),a.$focusWaitTimout=250}function h(a,b,c,d){return Math.sqrt(Math.pow(c-a,2)+Math.pow(d-b,2))}function i(a,b){if(a.start.row==a.end.row)var c=2*b.column-a.start.column-a.end.column;else var c=2*b.row-a.start.row-a.end.row;return c<0?{cursor:a.start,anchor:a.end}:{cursor:a.end,anchor:a.start}}var d=a("../lib/dom"),e=a("../lib/useragent"),f=5;(function(){this.onMouseDown=function(a){var b=a.inSelection(),c=a.getDocumentPosition();this.mousedownEvent=a;var d=this.editor,e=a.getButton();if(e!==0){var f=d.getSelectionRange(),g=f.isEmpty();g&&(d.moveCursorToPosition(c),d.selection.clearSelection()),d.textInput.onContextMenu(a.domEvent);return}if(b&&!d.isFocused()){d.focus();if(this.$focusWaitTimout&&!this.$clickSelection)return this.setState("focusWait"),this.captureMouse(a),a.preventDefault()}return!b||this.$clickSelection||a.getShiftKey()?this.startSelect(c):b&&(this.mousedownEvent.time=(new Date).getTime(),this.setState("dragWait")),this.captureMouse(a),a.preventDefault()},this.startSelect=function(a){a=a||this.editor.renderer.screenToTextCoordinates(this.x,this.y),this.mousedownEvent.getShiftKey()?this.editor.selection.selectToPosition(a):this.$clickSelection||(this.editor.moveCursorToPosition(a),this.editor.selection.clearSelection()),this.setState("select")},this.select=function(){var a,b=this.editor,c=b.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var d=this.$clickSelection.comparePoint(c);if(d==-1)a=this.$clickSelection.end;else if(d==1)a=this.$clickSelection.start;else{var e=i(this.$clickSelection,c);c=e.cursor,a=e.anchor}b.selection.setSelectionAnchor(a.row,a.column)}b.selection.selectToPosition(c),b.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(a){var b,c=this.editor,d=c.renderer.screenToTextCoordinates(this.x,this.y),e=c.selection[a](d.row,d.column);if(this.$clickSelection){var f=this.$clickSelection.comparePoint(e.start),g=this.$clickSelection.comparePoint(e.end);if(f==-1&&g<=0){b=this.$clickSelection.end;if(e.end.row!=d.row||e.end.column!=d.column)d=e.start}else if(g==1&&f>=0){b=this.$clickSelection.start;if(e.start.row!=d.row||e.start.column!=d.column)d=e.end}else if(f==-1&&g==1)d=e.end,b=e.start;else{var h=i(this.$clickSelection,d);d=h.cursor,b=h.anchor}c.selection.setSelectionAnchor(b.row,b.column)}c.selection.selectToPosition(d),c.renderer.scrollCursorIntoView()},this.startDrag=function(){var a=this.editor;this.setState("drag"),this.dragRange=a.getSelectionRange();var b=a.getSelectionStyle();this.dragSelectionMarker=a.session.addMarker(this.dragRange,"ace_selection",b),a.clearSelection(),d.addCssClass(a.container,"ace_dragging"),this.$dragKeybinding||(this.$dragKeybinding={handleKeyboard:function(a,b,c,d){if(c=="esc")return{command:this.command}},command:{exec:function(a){var b=a.$mouseHandler;b.dragCursor=null,b.dragEnd(),b.startSelect()}}}),a.keyBinding.addKeyboardHandler(this.$dragKeybinding)},this.focusWait=function(){var a=h(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),b=(new Date).getTime();(a>f||b-this.mousedownEvent.time>this.$focusWaitTimout)&&this.startSelect()},this.dragWait=function(a){var b=h(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),c=(new Date).getTime(),d=this.editor;b>f?this.startSelect(this.mousedownEvent.getDocumentPosition()):c-this.mousedownEvent.time>d.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(a){this.mousedownEvent.domEvent=a,this.startSelect()},this.drag=function(){var a=this.editor;this.dragCursor=a.renderer.screenToTextCoordinates(this.x,this.y),a.moveCursorToPosition(this.dragCursor),a.renderer.scrollCursorIntoView()},this.dragEnd=function(a){var b=this.editor,c=this.dragCursor,e=this.dragRange;d.removeCssClass(b.container,"ace_dragging"),b.session.removeMarker(this.dragSelectionMarker),b.keyBinding.removeKeyboardHandler(this.$dragKeybinding);if(!c)return;b.clearSelection();if(a&&(a.ctrlKey||a.altKey)){var f=b.session,g=e;g.end=f.insert(c,f.getTextRange(e)),g.start=c}else{if(e.contains(c.row,c.column))return;var g=b.moveText(e,c)}if(!g)return;b.selection.setSelectionRange(g)},this.onDoubleClick=function(a){var b=a.getDocumentPosition(),c=this.editor,d=c.session,e=d.getBracketRange(b);if(e){e.isEmpty()&&(e.start.column--,e.end.column++),this.$clickSelection=e,this.setState("select");return}this.$clickSelection=c.selection.getWordRange(b.row,b.column),this.setState("selectByWords")},this.onTripleClick=function(a){var b=a.getDocumentPosition(),c=this.editor;this.setState("selectByLines"),this.$clickSelection=c.selection.getLineRange(b.row)},this.onQuadClick=function(a){var b=this.editor;b.selectAll(),this.$clickSelection=b.getSelectionRange(),this.setState("null")},this.onScroll=function(a){var b=this.editor,c=b.renderer.isScrollableBy(a.wheelX*a.speed,a.wheelY*a.speed);if(c)this.$passScrollEvent=!1;else{if(this.$passScrollEvent)return;if(!this.$scrollStopTimeout){var d=this;this.$scrollStopTimeout=setTimeout(function(){d.$passScrollEvent=!0,d.$scrollStopTimeout=null},200)}}return b.renderer.scrollBy(a.wheelX*a.speed,a.wheelY*a.speed),a.preventDefault()}}).call(g.prototype),b.DefaultHandlers=g}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/event"],function(a,b,c){function f(a){function j(){h=d.createElement("div"),h.className="ace_gutter_tooltip",h.style.maxWidth="500px",h.style.display="none",b.container.appendChild(h)}function k(){h||j();var a=g.getDocumentPosition().row,d=c.$annotations[a];if(!d)return l();var e=b.session.getLength();if(a==e){var f=b.renderer.pixelToScreenCoordinates(0,g.y).row,k=g.$pos;if(f>b.session.documentToScreenRow(k.row,k.column))return l()}if(i==d)return;i=d.text.join("\n"),h.style.display="block",h.innerHTML=i,b.on("mousewheel",l),m(g)}function l(){f&&(f=clearTimeout(f)),i&&(h.style.display="none",i=null,b.removeEventListener("mousewheel",l))}function m(a){var c=b.renderer.$gutter.getBoundingClientRect();h.style.left=a.x-c.left+15+"px",a.y+3*b.renderer.lineHeight+15<c.bottom?(h.style.bottom="",h.style.top=a.y-c.top+15+"px"):(h.style.top="",h.style.bottom=c.bottom-a.y+5+"px")}var b=a.editor,c=b.renderer.$gutterLayer;a.editor.setDefaultHandler("guttermousedown",function(d){if(!b.isFocused())return;var e=c.getRegion(d);if(e)return;var f=d.getDocumentPosition().row,g=b.session.selection;return d.getShiftKey()?g.selectTo(f,0):a.$clickSelection=b.selection.getLineRange(f),a.captureMouse(d,"selectByLines"),d.preventDefault()});var f,g,h,i;a.editor.setDefaultHandler("guttermousemove",function(a){var b=a.domEvent.target||a.domEvent.srcElement;if(d.hasCssClass(b,"ace_fold-widget"))return l();i&&m(a),g=a;if(f)return;f=setTimeout(function(){f=null,g?k():l()},50)}),e.addListener(b.renderer.$gutter,"mouseout",function(a){g=null;if(!i||f)return;f=setTimeout(function(){f=null,l()},50)})}var d=a("../lib/dom"),e=a("../lib/event");b.GutterHandler=f}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(a,b,c){var d=a("../lib/event"),e=a("../lib/useragent"),f=b.MouseEvent=function(a,b){this.domEvent=a,this.editor=b,this.x=this.clientX=a.clientX,this.y=this.clientY=a.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){d.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){d.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var a=this.editor;if(a.getReadOnly())this.$inSelection=!1;else{var b=a.getSelectionRange();if(b.isEmpty())this.$inSelection=!1;else{var c=this.getDocumentPosition();this.$inSelection=b.contains(c.row,c.column)}}return this.$inSelection},this.getButton=function(){return d.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=e.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(f.prototype)}),ace.define("ace/mouse/dragdrop",["require","exports","module","ace/lib/event"],function(a,b,c){var d=a("../lib/event"),e=function(a){var b=a.editor,c,e,f,g,h,i,j,k=0,l=b.container;d.addListener(l,"dragenter",function(a){k++;if(!c){h=b.getSelectionRange(),i=b.selection.isBackwards();var e=b.getSelectionStyle();c=b.session.addMarker(h,"ace_selection",e),b.clearSelection(),clearInterval(g),g=setInterval(m,20)}return d.preventDefault(a)}),d.addListener(l,"dragover",function(a){return e=a.clientX,f=a.clientY,d.preventDefault(a)});var m=function(){j=b.renderer.screenToTextCoordinates(e,f),b.moveCursorToPosition(j),b.renderer.scrollCursorIntoView()};d.addListener(l,"dragleave",function(a){k--;if(k>0)return;return console.log(a.type,k,a.target),clearInterval(g),b.session.removeMarker(c),c=null,b.selection.setSelectionRange(h,i),d.preventDefault(a)}),d.addListener(l,"drop",function(a){return console.log(a.type,k,a.target),k=0,clearInterval(g),b.session.removeMarker(c),c=null,h.end=b.session.insert(j,a.dataTransfer.getData("Text")),h.start=j,b.focus(),b.selection.setSelectionRange(h),d.preventDefault(a)})};b.DragdropHandler=e}),ace.define("ace/mouse/fold_handler",["require","exports","module"],function(a,b,c){function d(a){a.on("click",function(b){var c=b.getDocumentPosition(),d=a.session,e=d.getFoldAt(c.row,c.column,1);e&&(b.getAccelKey()?d.removeFold(e):d.expandFold(e),b.stop())}),a.on("gutterclick",function(b){var c=a.renderer.$gutterLayer.getRegion(b);if(c=="foldWidgets"){var d=b.getDocumentPosition().row,e=a.session;e.foldWidgets&&e.foldWidgets[d]&&a.session.onFoldWidgetClick(d,b),b.stop()}})}b.FoldHandler=d}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(a,b,c){var d=a("../lib/keys"),e=a("../lib/event"),f=function(a){this.$editor=a,this.$data={},this.$handlers=[],this.setDefaultHandler(a.commands)};(function(){this.setDefaultHandler=function(a){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=a,this.addKeyboardHandler(a,0),this.$data={editor:this.$editor}},this.setKeyboardHandler=function(a){if(this.$handlers[this.$handlers.length-1]==a)return;while(this.$handlers[1])this.removeKeyboardHandler(this.$handlers[1]);this.addKeyboardHandler(a,1)},this.addKeyboardHandler=function(a,b){if(!a)return;var c=this.$handlers.indexOf(a);c!=-1&&this.$handlers.splice(c,1),b==undefined?this.$handlers.push(a):this.$handlers.splice(b,0,a),c==-1&&a.attach&&a.attach(this.$editor)},this.removeKeyboardHandler=function(a){var b=this.$handlers.indexOf(a);return b==-1?!1:(this.$handlers.splice(b,1),a.detach&&a.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.$callKeyboardHandlers=function(a,b,c,d){var f;for(var g=this.$handlers.length;g--;){f=this.$handlers[g].handleKeyboard(this.$data,a,b,c,d);if(f&&f.command)break}if(!f||!f.command)return!1;var h=!1,i=this.$editor.commands;return f.command!="null"?h=i.exec(f.command,this.$editor,f.args,d):h=f.passEvent!=1,h&&d&&a!=-1&&e.stopEvent(d),h},this.onCommandKey=function(a,b,c){var e=d.keyCodeToString(c);this.$callKeyboardHandlers(b,e,c,a)},this.onTextInput=function(a){var b=this.$callKeyboardHandlers(-1,a);b||this.$editor.commands.exec("insertstring",this.$editor,a)}}).call(f.prototype),b.KeyBinding=f}),ace.define("ace/edit_session",["require","exports","module","ace/config","ace/lib/oop","ace/lib/lang","ace/lib/net","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/search_highlight","ace/edit_session/folding","ace/edit_session/bracket_match"],function(a,b,c){var d=a("./config"),e=a("./lib/oop"),f=a("./lib/lang"),g=a("./lib/net"),h=a("./lib/event_emitter").EventEmitter,i=a("./selection").Selection,j=a("./mode/text").Mode,k=a("./range").Range,l=a("./document").Document,m=a("./background_tokenizer").BackgroundTokenizer,n=a("./search_highlight").SearchHighlight,o=function(a,b){this.$modified=!0,this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$resetRowCache(0),this.$wrapData=[],this.$foldData=[],this.$rowLengthCache=[],this.$undoSelect=!0,this.$foldData.toString=function(){var a="";return this.forEach(function(b){a+="\n"+b.toString()}),a},typeof a=="object"&&a.getLine?this.setDocument(a):this.setDocument(new l(a)),this.selection=new i(this),this.setMode(b)};(function(){function s(a){return a<4352?!1:a>=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=65504&&a<=65510}e.implement(this,h),this.setDocument=function(a){if(this.doc)throw new Error("Document is already set");this.doc=a,a.on("change",this.onChange.bind(this)),this.on("changeFold",this.onChangeFold.bind(this)),this.bgTokenizer&&(this.bgTokenizer.setDocument(this.getDocument()),this.bgTokenizer.start(0))},this.getDocument=function(){return this.doc},this.$resetRowCache=function(a){if(!a){this.$docRowCache=[],this.$screenRowCache=[];return}var b=this.$getRowCacheIndex(this.$docRowCache,a)+1,c=this.$docRowCache.length;this.$docRowCache.splice(b,c),this.$screenRowCache.splice(b,c)},this.$getRowCacheIndex=function(a,b){var c=0,d=a.length-1;while(c<=d){var e=c+d>>1,f=a[e];if(b>f)c=e+1;else{if(!(b<f))return e;d=e-1}}return c&&c-1},this.onChangeFold=function(a){var b=a.data;this.$resetRowCache(b.start.row)},this.onChange=function(a){var b=a.data;this.$modified=!0,this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule()),this.bgTokenizer.$updateOnChange(b),this._emit("change",a)},this.setValue=function(a){this.doc.setValue(a),this.selection.moveCursorTo(0,0),this.selection.clearSelection(),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(a){return this.bgTokenizer.getState(a)},this.getTokens=function(a){return this.bgTokenizer.getTokens(a)},this.getTokenAt=function(a,b){var c=this.bgTokenizer.getTokens(a),d,e=0;if(b==null)f=c.length-1,e=this.getLine(a).length;else for(var f=0;f<c.length;f++){e+=c[f].value.length;if(e>=b)break}return d=c[f],d?(d.index=f,d.start=e-d.value.length,d):null},this.highlight=function(a){if(!this.$searchHighlight){var b=new n(null,"ace_selected_word","text");this.$searchHighlight=this.addDynamicMarker(b)}this.$searchHighlight.setRegexp(a)},this.setUndoManager=function(a){this.$undoManager=a,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(a){var b=this;this.$syncInformUndoManager=function(){b.$informUndoManager.cancel(),b.$deltasFold.length&&(b.$deltas.push({group:"fold",deltas:b.$deltasFold}),b.$deltasFold=[]),b.$deltasDoc.length&&(b.$deltas.push({group:"doc",deltas:b.$deltasDoc}),b.$deltasDoc=[]),b.$deltas.length>0&&a.execute({action:"aceupdate",args:[b.$deltas,b]}),b.$deltas=[]},this.$informUndoManager=f.deferredCall(this.$syncInformUndoManager)}},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?f.stringRepeat(" ",this.getTabSize()):"	"},this.$useSoftTabs=!0,this.setUseSoftTabs=function(a){if(this.$useSoftTabs===a)return;this.$useSoftTabs=a},this.getUseSoftTabs=function(){return this.$useSoftTabs},this.$tabSize=4,this.setTabSize=function(a){if(isNaN(a)||this.$tabSize===a)return;this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=a,this._emit("changeTabSize")},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0},this.$overwrite=!1,this.setOverwrite=function(a){if(this.$overwrite==a)return;this.$overwrite=a,this._emit("changeOverwrite")},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(a,b){this.$decorations[a]||(this.$decorations[a]=""),this.$decorations[a]+=" "+b,this._emit("changeBreakpoint",{})},this.removeGutterDecoration=function(a,b){this.$decorations[a]=(this.$decorations[a]||"").replace(" "+b,""),this._emit("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b<a.length;b++)this.$breakpoints[a[b]]="ace_breakpoint";this._emit("changeBreakpoint",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._emit("changeBreakpoint",{})},this.setBreakpoint=function(a,b){b===undefined&&(b="ace_breakpoint"),b?this.$breakpoints[a]=b:delete this.$breakpoints[a],this._emit("changeBreakpoint",{})},this.clearBreakpoint=function(a){delete this.$breakpoints[a],this._emit("changeBreakpoint",{})},this.addMarker=function(a,b,c,d){var e=this.$markerId++,f={range:a,type:c||"line",renderer:typeof c=="function"?c:null,clazz:b,inFront:!!d,id:e};return d?(this.$frontMarkers[e]=f,this._emit("changeFrontMarker")):(this.$backMarkers[e]=f,this._emit("changeBackMarker")),e},this.addDynamicMarker=function(a,b){if(!a.update)return;var c=this.$markerId++;return a.id=c,a.inFront=!!b,b?(this.$frontMarkers[c]=a,this._emit("changeFrontMarker")):(this.$backMarkers[c]=a,this._emit("changeBackMarker")),a},this.removeMarker=function(a){var b=this.$frontMarkers[a]||this.$backMarkers[a];if(!b)return;var c=b.inFront?this.$frontMarkers:this.$backMarkers;b&&(delete c[a],this._emit(b.inFront?"changeFrontMarker":"changeBackMarker"))},this.getMarkers=function(a){return a?this.$frontMarkers:this.$backMarkers},this.setAnnotations=function(a){this.$annotations={};for(var b=0;b<a.length;b++){var c=a[b],d=c.row;this.$annotations[d]?this.$annotations[d].push(c):this.$annotations[d]=[c]}this._emit("changeAnnotation",{})},this.getAnnotations=function(){return this.$annotations||{}},this.clearAnnotations=function(){this.$annotations={},this._emit("changeAnnotation",{})},this.$detectNewLine=function(a){var b=a.match(/^.*?(\r?\n)/m);b?this.$autoNewLine=b[1]:this.$autoNewLine="\n"},this.getWordRange=function(a,b){var c=this.getLine(a),d=!1;b>0&&(d=!!c.charAt(b-1).match(this.tokenRe)),d||(d=!!c.charAt(b).match(this.tokenRe));if(d)var e=this.tokenRe;else if(/^\s+$/.test(c.slice(b-1,b+1)))var e=/\s/;else var e=this.nonTokenRe;var f=b;if(f>0){do f--;while(f>=0&&c.charAt(f).match(e));f++}var g=b;while(g<c.length&&c.charAt(g).match(e))g++;return new k(a,f,a,g)},this.getAWordRange=function(a,b){var c=this.getWordRange(a,b),d=this.getLine(c.end.row);while(d.charAt(c.end.column).match(/[ \t]/))c.end.column+=1;return c},this.setNewLineMode=function(a){this.doc.setNewLineMode(a)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.$useWorker=!0,this.setUseWorker=function(a){if(this.$useWorker==a)return;this.$useWorker=a,this.$stopWorker(),a&&this.$startWorker()},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(a){var b=a.data;this.bgTokenizer.start(b.first),this._emit("tokenizerUpdate",a)},this.$modes={},this._loadMode=function(b,c){function i(a){if(e.$modes[b])return c(e.$modes[b]);e.$modes[b]=new a.Mode,e.$modes[b].$id=b,e._emit("loadmode",{name:b,mode:e.$modes[b]}),c(e.$modes[b])}function k(a,b){if(!d.get("packaged"))return b();g.loadScript(d.moduleUrl(a,"mode"),b)}this.$modes["null"]||(this.$modes["null"]=this.$modes["ace/mode/text"]=new j);if(this.$modes[b])return c(this.$modes[b]);var e=this,f;try{f=a(b)}catch(h){}if(f&&f.Mode)return i(f);this.$mode||this.$setModePlaceholder(),k(b,function(){a([b],i)})},this.$setModePlaceholder=function(){this.$mode=this.$modes["null"];var a=this.$mode.getTokenizer();if(!this.bgTokenizer){this.bgTokenizer=new m(a);var b=this;this.bgTokenizer.addEventListener("update",function(a){b._emit("tokenizerUpdate",a)})}else this.bgTokenizer.setTokenizer(a);this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=this.$mode.tokenRe,this.nonTokenRe=this.$mode.nonTokenRe},this.$mode=null,this.$modeId=null,this.setMode=function(a){a=a||"null";if(typeof a=="string"){if(this.$modeId==a)return;this.$modeId=a;var b=this;this._loadMode(a,function(c){if(b.$modeId!==a)return;b.setMode(c)});return}if(this.$mode===a)return;this.$mode=a,this.$modeId=a.$id,this.$stopWorker(),this.$useWorker&&this.$startWorker();var c=a.getTokenizer();if(c.addEventListener!==undefined){var d=this.onReloadTokenizer.bind(this);c.addEventListener("update",d)}if(!this.bgTokenizer){this.bgTokenizer=new m(c);var b=this;this.bgTokenizer.addEventListener("update",function(a){b._emit("tokenizerUpdate",a)})}else this.bgTokenizer.setTokenizer(c);this.bgTokenizer.setDocument(this.getDocument()),this.bgTokenizer.start(0),this.tokenRe=a.tokenRe,this.nonTokenRe=a.nonTokenRe,this.$setFolding(a.foldingRules),this._emit("changeMode")},this.$stopWorker=function(){this.$worker&&this.$worker.terminate(),this.$worker=null},this.$startWorker=function(){if(typeof Worker!="undefined"&&!a.noWorker)try{this.$worker=this.$mode.createWorker(this)}catch(b){console.log("Could not load worker"),console.log(b),this.$worker=null}else this.$worker=null},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(a){a=Math.round(Math.max(0,a));if(this.$scrollTop===a)return;this.$scrollTop=a,this._emit("changeScrollTop",a)},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(a){a=Math.round(Math.max(0,a));if(this.$scrollLeft===a)return;this.$scrollLeft=a,this._emit("changeScrollLeft",a)},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.screenWidth},this.$computeWidth=function(a){if(this.$modified||a){this.$modified=!1;if(this.$useWrapMode)return this.screenWidth=this.$wrapLimit;var b=this.doc.getAllLines(),c=this.$rowLengthCache,d=0,e=0,f=this.$foldData[e],g=f?f.start.row:Infinity,h=b.length;for(var i=0;i<h;i++){if(i>g){i=f.end.row+1;if(i>=h)break;f=this.$foldData[e++],g=f?f.start.row:Infinity}c[i]==null&&(c[i]=this.$getStringScreenWidth(b[i])[0]),c[i]>d&&(d=c[i])}this.screenWidth=d}},this.getLine=function(a){return this.doc.getLine(a)},this.getLines=function(a,b){return this.doc.getLines(a,b)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(a){return this.doc.getTextRange(a||this.selection.getRange())},this.insert=function(a,b){return this.doc.insert(a,b)},this.remove=function(a){return this.doc.remove(a)},this.undoChanges=function(a,b){if(!a.length)return;this.$fromUndo=!0;var c=null;for(var d=a.length-1;d!=-1;d--){var e=a[d];e.group=="doc"?(this.doc.revertDeltas(e.deltas),c=this.$getUndoSelection(e.deltas,!0,c)):e.deltas.forEach(function(a){this.addFolds(a.folds)},this)}return this.$fromUndo=!1,c&&this.$undoSelect&&!b&&this.selection.setSelectionRange(c),c},this.redoChanges=function(a,b){if(!a.length)return;this.$fromUndo=!0;var c=null;for(var d=0;d<a.length;d++){var e=a[d];e.group=="doc"&&(this.doc.applyDeltas(e.deltas),c=this.$getUndoSelection(e.deltas,!1,c))}return this.$fromUndo=!1,c&&this.$undoSelect&&!b&&this.selection.setSelectionRange(c),c},this.setUndoSelect=function(a){this.$undoSelect=a},this.$getUndoSelection=function(a,b,c){function d(a){var c=a.action=="insertText"||a.action=="insertLines";return b?!c:c}var e=a[0],f,g,h=!1;d(e)?(f=e.range.clone(),h=!0):(f=k.fromPoints(e.range.start,e.range.start),h=!1);for(var i=1;i<a.length;i++)e=a[i],d(e)?(g=e.range.start,f.compare(g.row,g.column)==-1&&f.setStart(e.range.start),g=e.range.end,f.compare(g.row,g.column)==1&&f.setEnd(e.range.end),h=!0):(g=e.range.start,f.compare(g.row,g.column)==-1&&(f=k.fromPoints(e.range.start,e.range.start)),h=!1);if(c!=null){var j=c.compareRange(f);j==1?f.setStart(c.start):j==-1&&f.setEnd(c.end)}return f},this.replace=function(a,b){return this.doc.replace(a,b)},this.moveText=function(a,b){var c=this.getTextRange(a);this.remove(a);var d=b.row,e=b.column;!a.isMultiLine()&&a.start.row==d&&a.end.column<e&&(e-=c.length);if(a.isMultiLine()&&a.end.row<d){var f=this.doc.$split(c);d-=f.length-1}var g=d+a.end.row-a.start.row,h=a.isMultiLine()?a.end.column:e+a.end.column-a.start.column,i=new k(d,e,g,h);return this.insert(i.start,c),i},this.indentRows=function(a,b,c){c=c.replace(/\t/g,this.getTabString());for(var d=a;d<=b;d++)this.insert({row:d,column:0},c)},this.outdentRows=function(a){var b=a.collapseRows(),c=new k(0,0,0,0),d=this.getTabSize();for(var e=b.start.row;e<=b.end.row;++e){var f=this.getLine(e);c.start.row=e,c.end.row=e;for(var g=0;g<d;++g)if(f.charAt(g)!=" ")break;g<d&&f.charAt(g)=="	"?(c.start.column=g,c.end.column=g+1):(c.start.column=0,c.end.column=g),this.remove(c)}},this.moveLinesUp=function(a,b){if(a<=0)return 0;var c=this.doc.removeLines(a,b);return this.doc.insertLines(a-1,c),-1},this.moveLinesDown=function(a,b){if(b>=this.doc.getLength()-1)return 0;var c=this.doc.removeLines(a,b);return this.doc.insertLines(a+1,c),1},this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);var d=b-a+1;return d},this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1))},this.$clipColumnToRow=function(a,b){return b<0?0:Math.min(this.doc.getLine(a).length,b)},this.$clipPositionToDocument=function(a,b){b=Math.max(0,b);if(a<0)a=0,b=0;else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b)}return{row:a,column:b}},this.$clipRangeToDocument=function(a){a.start.row<0?(a.start.row=0,a.start.column=0):a.start.column=this.$clipColumnToRow(a.start.row,a.start.column);var b=this.doc.getLength()-1;return a.end.row>b?(a.end.row=b,a.end.column=this.doc.getLine(b).length):a.end.column=this.$clipColumnToRow(a.end.row,a.end.column),a},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a,this.$modified=!0,this.$resetRowCache(0);if(a){var b=this.getLength();this.$wrapData=[];for(var c=0;c<b;c++)this.$wrapData.push([]);this.$updateWrapData(0,b-1)}this._emit("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(a,b){if(this.$wrapLimitRange.min!==a||this.$wrapLimitRange.max!==b)this.$wrapLimitRange.min=a,this.$wrapLimitRange.max=b,this.$modified=!0,this._emit("changeWrapMode")},this.adjustWrapLimit=function(a){var b=this.$constrainWrapLimit(a);return b!=this.$wrapLimit&&b>0?(this.$wrapLimit=b,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._emit("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));var c=this.$wrapLimitRange.max;return c&&(a=Math.min(c,a)),Math.max(1,a)},this.getWrapLimit=function(){return this.$wrapLimit},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,d=a.data.action,e=a.data.range.start.row,f=a.data.range.end.row,g=a.data.range.start,h=a.data.range.end,i=null;d.indexOf("Lines")!=-1?(d=="insertLines"?f=e+a.data.lines.length:f=e,c=a.data.lines?a.data.lines.length:f-e):c=f-e;if(c!=0)if(d.indexOf("remove")!=-1){this[b?"$wrapData":"$rowLengthCache"].splice(e,c);var j=this.$foldData;i=this.getFoldsInRange(a.data.range),this.removeFolds(i);var k=this.getFoldLine(h.row),l=0;if(k){k.addRemoveChars(h.row,h.column,g.column-h.column),k.shiftRow(-c);var m=this.getFoldLine(e);m&&m!==k&&(m.merge(k),k=m),l=j.indexOf(k)+1}for(l;l<j.length;l++){var k=j[l];k.start.row>=h.row&&k.shiftRow(-c)}f=e}else{var n;if(b){n=[e,0];for(var o=0;o<c;o++)n.push([]);this.$wrapData.splice.apply(this.$wrapData,n)}else n=Array(c),n.unshift(e,0),this.$rowLengthCache.splice.apply(this.$rowLengthCache,n);var j=this.$foldData,k=this.getFoldLine(e),l=0;if(k){var p=k.range.compareInside(g.row,g.column);p==0?(k=k.split(g.row,g.column),k.shiftRow(c),k.addRemoveChars(f,0,h.column-g.column)):p==-1&&(k.addRemoveChars(e,0,h.column-g.column),k.shiftRow(c)),l=j.indexOf(k)+1}for(l;l<j.length;l++){var k=j[l];k.start.row>=e&&k.shiftRow(c)}}else{c=Math.abs(a.data.range.start.column-a.data.range.end.column),d.indexOf("remove")!=-1&&(i=this.getFoldsInRange(a.data.range),this.removeFolds(i),c=-c);var k=this.getFoldLine(e);k&&k.addRemoveChars(e,g.column,c)}return b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),b?this.$updateWrapData(e,f):this.$updateRowLengthCache(e,f),i},this.$updateRowLengthCache=function(a,b,c){this.$rowLengthCache[a]=null,this.$rowLengthCache[b]=null},this.$updateWrapData=function(a,b){var c=this.doc.getAllLines(),d=this.getTabSize(),e=this.$wrapData,g=this.$wrapLimit,h,j,k=a;b=Math.min(b,c.length-1);while(k<=b){j=this.getFoldLine(k,j);if(!j)h=this.$getDisplayTokens(f.stringTrimRight(c[k])),e[k]=this.$computeWrapSplits(h,g,d),k++;else{h=[],j.walk(function(a,b,d,e){var f;if(a){f=this.$getDisplayTokens(a,h.length),f[0]=i;for(var g=1;g<f.length;g++)f[g]=l}else f=this.$getDisplayTokens(c[b].substring(e,d),h.length);h=h.concat(f)}.bind(this),j.end.row,c[j.end.row].length+1);while(h.length!=0&&h[h.length-1]>=p)h.pop();e[j.start.row]=this.$computeWrapSplits(h,g,d),k=j.end.row+1}}};var b=1,c=2,i=3,l=4,o=9,p=10,q=11,r=12;this.$computeWrapSplits=function(a,b){function g(b){var d=a.slice(e,b),g=d.length;d.join("").replace(/12/g,function(){g-=1}).replace(/2/g,function(){g-=1}),f+=g,c.push(f),e=b}if(a.length==0)return[];var c=[],d=a.length,e=0,f=0;while(d-e>b){var h=e+b;if(a[h]>=p){while(a[h]>=p)h++;g(h);continue}if(a[h]==i||a[h]==l){for(h;h!=e-1;h--)if(a[h]==i)break;if(h>e){g(h);continue}h=e+b;for(h;h<a.length;h++)if(a[h]!=l)break;if(h==a.length)break;g(h);continue}var j=Math.max(h-10,e-1);while(h>j&&a[h]<i)h--;while(h>j&&a[h]==o)h--;if(h>j){g(++h);continue}h=e+b,g(h)}return c},this.$getDisplayTokens=function(a,d){var e=[],f;d=d||0;for(var g=0;g<a.length;g++){var h=a.charCodeAt(g);if(h==9){f=this.getScreenTabSize(e.length+d),e.push(q);for(var i=1;i<f;i++)e.push(r)}else h==32?e.push(p):h>39&&h<48||h>57&&h<64?e.push(o):h>=4352&&s(h)?e.push(b,c):e.push(b)}return e},this.$getStringScreenWidth=function(a,b,c){if(b==0)return[0,0];b==null&&(b=Infinity),c=c||0;var d,e;for(e=0;e<a.length;e++){d=a.charCodeAt(e),d==9?c+=this.getScreenTabSize(c):d>=4352&&s(d)?c+=2:c+=1;if(c>b)break}return[c,e]},this.getRowLength=function(a){return!this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1},this.getScreenLastRowColumn=function(a){var b=this.screenToDocumentPosition(a,Number.MAX_VALUE);return this.documentToScreenColumn(b.row,b.column)},this.getDocumentLastRowColumn=function(a,b){var c=this.documentToScreenRow(a,b);return this.getScreenLastRowColumn(c)},this.getDocumentLastRowColumnPosition=function(a,b){var c=this.documentToScreenRow(a,b);return this.screenToDocumentPosition(c,Number.MAX_VALUE/10)},this.getRowSplitData=function(a){return this.$useWrapMode?this.$wrapData[a]:undefined},this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize},this.screenToDocumentRow=function(a,b){return this.screenToDocumentPosition(a,b).row},this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column},this.screenToDocumentPosition=function(a,b){if(a<0)return{row:0,column:0};var c,d=0,e=0,f,g=0,h=0,i=this.$screenRowCache,j=this.$getRowCacheIndex(i,a);if(0<j&&j<i.length)var g=i[j],d=this.$docRowCache[j],k=a>g||a==g&&j==i.length-1;else var k=!0;var l=this.getLength()-1,m=this.getNextFoldLine(d),n=m?m.start.row:Infinity;while(g<=a){h=this.getRowLength(d);if(g+h-1>=a||d>=l)break;g+=h,d++,d>n&&(d=m.end.row+1,m=this.getNextFoldLine(d,m),n=m?m.start.row:Infinity),k&&(this.$docRowCache.push(d),this.$screenRowCache.push(g))}if(m&&m.start.row<=d)c=this.getFoldDisplayLine(m),d=m.start.row;else{if(g+h<=a||d>l)return{row:l,column:this.getLine(l).length};c=this.getLine(d),m=null}if(this.$useWrapMode){var o=this.$wrapData[d];o&&(f=o[a-g],a>g&&o.length&&(e=o[a-g-1]||o[o.length-1],c=c.substring(e)))}return e+=this.$getStringScreenWidth(c,b)[1],this.$useWrapMode&&e>=f&&(e=f-1),m?m.idxToPosition(e):{row:d,column:e}},this.documentToScreenPosition=function(a,b){if(typeof b=="undefined")var c=this.$clipPositionToDocument(a.row,a.column);else c=this.$clipPositionToDocument(a,b);a=c.row,b=c.column;var d=0,e=null,f=null;f=this.getFoldAt(a,b,1),f&&(a=f.start.row,b=f.start.column);var g,h=0,i=this.$docRowCache,j=this.$getRowCacheIndex(i,a);if(0<j&&j<i.length)var h=i[j],d=this.$screenRowCache[j],k=a>h||a==h&&j==i.length-1;else var k=!0;var l=this.getNextFoldLine(h),m=l?l.start.row:Infinity;while(h<a){if(h>=m){g=l.end.row+1;if(g>a)break;l=this.getNextFoldLine(g,l),m=l?l.start.row:Infinity}else g=h+1;d+=this.getRowLength(h),h=g,k&&(this.$docRowCache.push(h),this.$screenRowCache.push(d))}var n="";l&&h>=m?(n=this.getFoldDisplayLine(l,a,b),e=l.start.row):(n=this.getLine(a).substring(0,b),e=a);if(this.$useWrapMode){var o=this.$wrapData[e],p=0;while(n.length>=o[p])d++,p++;n=n.substring(o[p-1]||0,n.length)}return{row:d,column:this.$getStringScreenWidth(n)[0]}},this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,b).column},this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row},this.getScreenLength=function(){var a=0,b=null;if(!this.$useWrapMode){a=this.getLength();var c=this.$foldData;for(var d=0;d<c.length;d++)b=c[d],a-=b.end.row-b.start.row}else{var e=this.$wrapData.length,f=0,d=0,b=this.$foldData[d++],g=b?b.start.row:Infinity;while(f<e)a+=this.$wrapData[f].length+1,f++,f>g&&(f=b.end.row+1,b=this.$foldData[d++],g=b?b.start.row:Infinity)}return a}}).call(o.prototype),a("./edit_session/folding").Folding.call(o.prototype),a("./edit_session/bracket_match").BracketMatch.call(o.prototype),b.EditSession=o}),ace.define("ace/config",["require","exports","module","ace/lib/lang"],function(a,b,c){function g(a){return a.replace(/-(.)/g,function(a,b){return b.toUpperCase()})}"no use strict";var d=a("./lib/lang"),e=function(){return this}(),f={packaged:!1,workerPath:"",modePath:"",themePath:"",suffix:".js",$moduleUrls:{}};b.get=function(a){if(!f.hasOwnProperty(a))throw new Error("Unknown config key: "+a);return f[a]},b.set=function(a,b){if(!f.hasOwnProperty(a))throw new Error("Unknown config key: "+a);f[a]=b},b.all=function(){return d.copyObject(f)},b.moduleUrl=function(a,b){if(f.$moduleUrls[a])return f.$moduleUrls[a];var c=a.split("/");b=b||c[c.length-2]||"";var d=c[c.length-1].replace(b,"").replace(/(^[\-_])|([\-_]$)/,"");return!d&&c.length>1&&(d=c[c.length-2]),this.get(b+"Path")+"/"+b+"-"+d+this.get("suffix")},b.setModuleUrl=function(a,b){return f.$moduleUrls[a]=b},b.init=function(){f.packaged=a.packaged||c.packaged||e.define&&define.packaged;if(!e.document)return"";var d={},h="",i=document.getElementsByTagName("script");for(var j=0;j<i.length;j++){var k=i[j],l=k.src||k.getAttribute("src");if(!l)continue;var m=k.attributes;for(var n=0,o=m.length;n<o;n++){var p=m[n];p.name.indexOf("data-ace-")===0&&(d[g(p.name.replace(/^data-ace-/,""))]=p.value)}var q=l.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);q&&(h=q[1])}h&&(d.base=d.base||h,d.packaged=!0),d.workerPath=d.workerPath||d.base,d.modePath=d.modePath||d.base,d.themePath=d.themePath||d.base,delete d.base;for(var r in d)typeof d[r]!="undefined"&&b.set(r,d[r])}}),ace.define("ace/lib/net",["require","exports","module","ace/lib/useragent"],function(a,b,c){var d=a("./useragent");b.get=function(a,c){var d=b.createXhr();d.open("GET",a,!0),d.onreadystatechange=function(a){d.readyState===4&&c(d.responseText)},d.send(null)};var e=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"];b.createXhr=function(){var a,b,c;if(typeof XMLHttpRequest!="undefined")return new XMLHttpRequest;for(b=0;b<3;b++){c=e[b];try{a=new ActiveXObject(c)}catch(d){}if(a){e=[c];break}}if(!a)throw new Error("createXhr(): XMLHttpRequest not available");return a},b.loadScript=function(a,b){var c=document.getElementsByTagName("head")[0],e=document.createElement("script");e.src=a,c.appendChild(e),d.isOldIE?e.onreadystatechange=function(){this.readyState=="loaded"&&b()}:e.onload=b}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(a,b,c){var d={};d._emit=d._dispatchEvent=function(a,b){this._eventRegistry=this._eventRegistry||{},this._defaultHandlers=this._defaultHandlers||{};var c=this._eventRegistry[a]||[],d=this._defaultHandlers[a];if(!c.length&&!d)return;b=b||{},b.type||(b.type=a),b.stopPropagation||(b.stopPropagation=function(){this.propagationStopped=!0}),b.preventDefault||(b.preventDefault=function(){this.defaultPrevented=!0});for(var e=0;e<c.length;e++){c[e](b);if(b.propagationStopped)break}if(d&&!b.defaultPrevented)return d(b)},d.setDefaultHandler=function(a,b){this._defaultHandlers=this._defaultHandlers||{};if(this._defaultHandlers[a])throw new Error("The default handler for '"+a+"' is already set");this._defaultHandlers[a]=b},d.on=d.addEventListener=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];c||(c=this._eventRegistry[a]=[]),c.indexOf(b)==-1&&c.push(b)},d.removeListener=d.removeEventListener=function(a,b){this._eventRegistry=this._eventRegistry||{};var c=this._eventRegistry[a];if(!c)return;var d=c.indexOf(b);d!==-1&&c.splice(d,1)},d.removeAllListeners=function(a){this._eventRegistry&&(this._eventRegistry[a]=[])},b.EventEmitter=d}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(a,b,c){var d=a("./lib/oop"),e=a("./lib/lang"),f=a("./lib/event_emitter").EventEmitter,g=a("./range").Range,h=function(a){this.session=a,this.doc=a.getDocument(),this.clearSelection(),this.lead=this.selectionLead=this.doc.createAnchor(0,0),this.anchor=this.selectionAnchor=this.doc.createAnchor(0,0);var b=this;this.lead.on("change",function(a){b._emit("changeCursor"),b.$isEmpty||b._emit("changeSelection"),!b.$keepDesiredColumnOnChange&&a.old.column!=a.value.column&&(b.$desiredColumn=null)}),this.selectionAnchor.on("change",function(){b.$isEmpty||b._emit("changeSelection")})};(function(){d.implement(this,f),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return this.isEmpty()?!1:this.getRange().isMultiLine()},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(a,b){this.anchor.setPosition(a,b),this.$isEmpty&&(this.$isEmpty=!1,this._emit("changeSelection"))},this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.shiftSelection=function(a){if(this.$isEmpty){this.moveCursorTo(this.lead.row,this.lead.column+a);return}var b=this.getSelectionAnchor(),c=this.getSelectionLead(),d=this.isBackwards();(!d||b.column!==0)&&this.setSelectionAnchor(b.row,b.column+a),(d||c.column!==0)&&this.$moveSelection(function(){this.moveCursorTo(c.row,c.column+a)})},this.isBackwards=function(){var a=this.anchor,b=this.lead;return a.row>b.row||a.row==b.row&&a.column>b.column},this.getRange=function(){var a=this.anchor,b=this.lead;return this.isEmpty()?g.fromPoints(b,b):this.isBackwards()?g.fromPoints(b,a):g.fromPoints(a,b)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(a,this.doc.getLine(a).length)},this.setRange=this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column)),this.$desiredColumn=null},this.$moveSelection=function(a){var b=this.lead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column),a.call(this)},this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b)})},this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a)})},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(a,b){if(typeof b=="undefined"){var c=a||this.lead;a=c.row,b=c.column}return this.session.getWordRange(a,b)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var a=this.getCursor(),b=this.session.getAWordRange(a.row,a.column);this.setSelectionRange(b)},this.getLineRange=function(a,b){var c=typeof a=="number"?a:this.lead.row,d,e=this.session.getFoldLine(c);return e?(c=e.start.row,d=e.end.row):d=c,b?new g(c,0,d,this.session.getLine(d).length):new g(c,0,d+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var a=this.lead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,-1))this.moveCursorTo(b.start.row,b.start.column);else if(a.column==0)a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length);else{var c=this.session.getTabSize();this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-c,a.column).split(" ").length-1==c?this.moveCursorBy(0,-c):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var a=this.lead.getPosition(),b;if(b=this.session.getFoldAt(a.row,a.column,1))this.moveCursorTo(b.end.row,b.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var c=this.session.getTabSize(),a=this.lead;this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column,a.column+c).split(" ").length-1==c?this.moveCursorBy(0,c):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var a=this.lead.row,b=this.lead.column,c=this.session.documentToScreenRow(a,b),d=this.session.screenToDocumentPosition(c,0),e=this.session.getDisplayLine(a,null,d.row,d.column),f=e.match(/^\s*/);f[0].length==b?this.moveCursorTo(d.row,d.column):this.moveCursorTo(d.row,d.column+f[0].length)},this.moveCursorLineEnd=function(){var a=this.lead,b=this.session.getDocumentLastRowColumnPosition(a.row,a.column);if(this.lead.column==b.column){var c=this.session.getLine(b.row);if(b.column==c.length){var d=c.search(/\s+$/);d>0&&(b.column=d)}}this.moveCursorTo(b.row,b.column)},this.moveCursorFileEnd=function(){var a=this.doc.getLength()-1,b=this.doc.getLine(a).length;this.moveCursorTo(a,b)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var a=this.lead.row,b=this.lead.column,c=this.doc.getLine(a),d=c.substring(b),e;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var f=this.session.getFoldAt(a,b,1);if(f){this.moveCursorTo(f.end.row,f.end.column);return}if(e=this.session.nonTokenRe.exec(d))b+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,d=c.substring(b);if(b>=c.length){this.moveCursorTo(a,c.length),this.moveCursorRight(),a<this.doc.getLength()-1&&this.moveCursorWordRight();return}if(e=this.session.tokenRe.exec(d))b+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(a,b)},this.moveCursorLongWordLeft=function(){var a=this.lead.row,b=this.lead.column,c;if(c=this.session.getFoldAt(a,b,-1)){this.moveCursorTo(c.start.row,c.start.column);return}var d=this.session.getFoldStringAt(a,b,-1);d==null&&(d=this.doc.getLine(a).substring(0,b));var f=e.stringReverse(d),g;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;if(g=this.session.nonTokenRe.exec(f))b-=this.session.nonTokenRe.lastIndex,f=f.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0;if(b<=0){this.moveCursorTo(a,0),this.moveCursorLeft(),a>0&&this.moveCursorWordLeft();return}if(g=this.session.tokenRe.exec(f))b-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(a,b)},this.$shortWordEndIndex=function(a){var b,c=0,d,e=/\s/,f=this.session.tokenRe;f.lastIndex=0;if(b=this.session.tokenRe.exec(a))c=this.session.tokenRe.lastIndex;else{while((d=a[c])&&e.test(d))c++;if(c<=1){f.lastIndex=0;while((d=a[c])&&!f.test(d)){f.lastIndex=0,c++;if(e.test(d)){if(c>2){c--;break}while((d=a[c])&&e.test(d))c++;if(c>2)break}}}}return f.lastIndex=0,c},this.moveCursorShortWordRight=function(){var a=this.lead.row,b=this.lead.column,c=this.doc.getLine(a),d=c.substring(b),e=this.session.getFoldAt(a,b,1);if(e)return this.moveCursorTo(e.end.row,e.end.column);if(b==c.length){var f=this.doc.getLength();do a++,d=this.doc.getLine(a);while(a<f&&/^\s*$/.test(d));/^\s+/.test(d)||(d=""),b=0}var g=this.$shortWordEndIndex(d);this.moveCursorTo(a,b+g)},this.moveCursorShortWordLeft=function(){var a=this.lead.row,b=this.lead.column,c;if(c=this.session.getFoldAt(a,b,-1))return this.moveCursorTo(c.start.row,c.start.column);var d=this.session.getLine(a).substring(0,b);if(b==0){do a--,d=this.doc.getLine(a);while(a>0&&/^\s*$/.test(d));b=d.length,/\s+$/.test(d)||(d="")}var f=e.stringReverse(d),g=this.$shortWordEndIndex(f);return this.moveCursorTo(a,b-g)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(a,b){var c=this.session.documentToScreenPosition(this.lead.row,this.lead.column);b===0&&(this.$desiredColumn?c.column=this.$desiredColumn:this.$desiredColumn=c.column);var d=this.session.screenToDocumentPosition(c.row+a,c.column);this.moveCursorTo(d.row,d.column+b,b===0)},this.moveCursorToPosition=function(a){this.moveCursorTo(a.row,a.column)},this.moveCursorTo=function(a,b,c){var d=this.session.getFoldAt(a,b,1);d&&(a=d.start.row,b=d.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(a,b),this.$keepDesiredColumnOnChange=!1,c||(this.$desiredColumn=null)},this.moveCursorToScreen=function(a,b,c){var d=this.session.screenToDocumentPosition(a,b);this.moveCursorTo(d.row,d.column,c)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(a){this.setSelectionRange(a,a.cursor==a.start),this.$desiredColumn=a.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(a){var b=this.getRange();return a?(a.start.column=b.start.column,a.start.row=b.start.row,a.end.column=b.end.column,a.end.row=b.end.row):a=b,a.cursor=this.isBackwards()?a.start:a.end,a.desiredColumn=this.$desiredColumn,a}}).call(h.prototype),b.Selection=h}),ace.define("ace/range",["require","exports","module"],function(a,b,c){var d=function(a,b,c,d){this.start={row:a,column:b},this.end={row:c,column:d}};(function(){this.isEqual=function(a){return this.start.row==a.start.row&&this.end.row==a.end.row&&this.start.column==a.start.column&&this.end.column==a.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(a,b){return this.compare(a,b)==0},this.compareRange=function(a){var b,c=a.end,d=a.start;return b=this.compare(c.row,c.column),b==1?(b=this.compare(d.row,d.column),b==1?2:b==0?1:0):b==-1?-2:(b=this.compare(d.row,d.column),b==-1?-1:b==1?42:0)},this.comparePoint=function(a){return this.compare(a.row,a.column)},this.containsRange=function(a){return this.comparePoint(a.start)==0&&this.comparePoint(a.end)==0},this.intersects=function(a){var b=this.compareRange(a);return b==-1||b==0||b==1},this.isEnd=function(a,b){return this.end.row==a&&this.end.column==b},this.isStart=function(a,b){return this.start.row==a&&this.start.column==b},this.setStart=function(a,b){typeof a=="object"?(this.start.column=a.column,this.start.row=a.row):(this.start.row=a,this.start.column=b)},this.setEnd=function(a,b){typeof a=="object"?(this.end.column=a.column,this.end.row=a.row):(this.end.row=a,this.end.column=b)},this.inside=function(a,b){return this.compare(a,b)==0?this.isEnd(a,b)||this.isStart(a,b)?!1:!0:!1},this.insideStart=function(a,b){return this.compare(a,b)==0?this.isEnd(a,b)?!1:!0:!1},this.insideEnd=function(a,b){return this.compare(a,b)==0?this.isStart(a,b)?!1:!0:!1},this.compare=function(a,b){return!this.isMultiLine()&&a===this.start.row?b<this.start.column?-1:b>this.end.column?1:0:a<this.start.row?-1:a>this.end.row?1:this.start.row===a?b>=this.start.column?0:-1:this.end.row===a?b<=this.end.column?0:1:0},this.compareStart=function(a,b){return this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.compareEnd=function(a,b){return this.end.row==a&&this.end.column==b?1:this.compare(a,b)},this.compareInside=function(a,b){return this.end.row==a&&this.end.column==b?1:this.start.row==a&&this.start.column==b?-1:this.compare(a,b)},this.clipRows=function(a,b){if(this.end.row>b)var c={row:b+1,column:0};if(this.start.row>b)var e={row:b+1,column:0};if(this.start.row<a)var e={row:a,column:0};if(this.end.row<a)var c={row:a,column:0};return d.fromPoints(e||this.start,c||this.end)},this.extend=function(a,b){var c=this.compare(a,b);if(c==0)return this;if(c==-1)var e={row:a,column:b};else var f={row:a,column:b};return d.fromPoints(e||this.start,f||this.end)},this.isEmpty=function(){return this.start.row==this.end.row&&this.start.column==this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return d.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new d(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new d(this.start.row,0,this.end.row,0)},this.toScreenRange=function(a){var b=a.documentToScreenPosition(this.start),c=a.documentToScreenPosition(this.end);return new d(b.row,b.column,c.row,c.column)}}).call(d.prototype),d.fromPoints=function(a,b){return new d(a.row,a.column,b.row,b.column)},b.Range=d}),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour","ace/unicode"],function(a,b,c){var d=a("../tokenizer").Tokenizer,e=a("./text_highlight_rules").TextHighlightRules,f=a("./behaviour").Behaviour,g=a("../unicode"),h=function(){this.$tokenizer=new d((new e).getRules()),this.$behaviour=new f};(function(){this.tokenRe=new RegExp("^["+g.packages.L+g.packages.Mn+g.packages.Mc+g.packages.Nd+g.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+g.packages.L+g.packages.Mn+g.packages.Mc+g.packages.Nd+g.packages.Pc+"\\$_]|s])+","g"),this.getTokenizer=function(){return this.$tokenizer},this.toggleCommentLines=function(a,b,c,d){},this.getNextLineIndent=function(a,b,c){return""},this.checkOutdent=function(a,b,c){return!1},this.autoOutdent=function(a,b,c){},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""},this.createWorker=function(a){return null},this.createModeDelegates=function(a){if(!this.$embeds)return;this.$modes={};for(var b=0;b<this.$embeds.length;b++)a[this.$embeds[b]]&&(this.$modes[this.$embeds[b]]=new a[this.$embeds[b]]);var c=["toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction"];for(var b=0;b<c.length;b++)(function(a){var d=c[b],e=a[d];a[c[b]]=function(){return this.$delegator(d,arguments,e)}})(this)},this.$delegator=function(a,b,c){var d=b[0];for(var e=0;e<this.$embeds.length;e++){if(!this.$modes[this.$embeds[e]])continue;var f=d.split(this.$embeds[e]);if(!f[0]&&f[1]){b[0]=f[1];var g=this.$modes[this.$embeds[e]];return g[a].apply(g,b)}}var h=c.apply(this,b);return c?h:undefined},this.transformAction=function(a,b,c,d,e){if(this.$behaviour){var f=this.$behaviour.getBehaviours();for(var g in f)if(f[g][b]){var h=f[g][b].apply(this,arguments);if(h)return h}}}}).call(h.prototype),b.Mode=h}),ace.define("ace/tokenizer",["require","exports","module"],function(a,b,c){var d=function(a,b){b=b?"g"+b:"g",this.rules=a,this.regExps={},this.matchMappings={};for(var c in this.rules){var d=this.rules[c],e=d,f=[],g=0,h=this.matchMappings[c]={};for(var i=0;i<e.length;i++){e[i].regex instanceof RegExp&&(e[i].regex=e[i].regex.toString().slice(1,-1));var j=(new RegExp("(?:("+e[i].regex+")|(.))")).exec("a").length-2,k=e[i].regex.replace(/\\([0-9]+)/g,function(a,b){return"\\"+(parseInt(b,10)+g+1)});if(j>1&&e[i].token.length!==j-1)throw new Error("Matching groups and length of the token array don't match in rule #"+i+" of state "+c);h[g]={rule:i,len:j},g+=j,f.push(k)}this.regExps[c]=new RegExp("(?:("+f.join(")|(")+")|(.))",b)}};(function(){this.getLineTokens=function(a,b){var c=b||"start",d=this.rules[c],e=this.matchMappings[c],f=this.regExps[c];f.lastIndex=0;var g,h=[],i=0,j={type:null,value:""};while(g=f.exec(a)){var k="text",l=null,m=[g[0]];for(var n=0;n<g.length-2;n++){if(g[n+1]===undefined)continue;l=d[e[n].rule],e[n].len>1&&(m=g.slice(n+2,n+1+e[n].len)),typeof l.token=="function"?k=l.token.apply(this,m):k=l.token,l.next&&(c=l.next,d=this.rules[c],e=this.matchMappings[c],i=f.lastIndex,f=this.regExps[c],f.lastIndex=i);break}if(m[0]){typeof k=="string"&&(m=[m.join("")],k=[k]);for(var n=0;n<m.length;n++){if(!m[n])continue;(!l||l.merge||k[n]==="text")&&j.type===k[n]?j.value+=m[n]:(j.type&&h.push(j),j={type:k[n],value:m[n]})}}if(i==a.length)break;i=f.lastIndex}return j.type&&h.push(j),{tokens:h,state:c}}}).call(d.prototype),b.Tokenizer=d}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(a,b,c){var d=a("../lib/lang"),e=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{token:"text",regex:".+"}]}};(function(){this.addRules=function(a,b){for(var c in a){var d=a[c];for(var e=0;e<d.length;e++){var f=d[e];f.next&&(f.next=b+f.next)}this.$rules[b+c]=d}},this.getRules=function(){return this.$rules},this.embedRules=function(a,b,c,e){var f=(new a).getRules();if(e)for(var g=0;g<e.length;g++)e[g]=b+e[g];else{e=[];for(var h in f)e.push(b+h)}this.addRules(f,b);for(var g=0;g<e.length;g++)Array.prototype.unshift.apply(this.$rules[e[g]],d.deepCopy(c));this.$embeds||(this.$embeds=[]),this.$embeds.push(b)},this.getEmbeds=function(){return this.$embeds}}).call(e.prototype),b.TextHighlightRules=e}),ace.define("ace/mode/behaviour",["require","exports","module"],function(a,b,c){var d=function(){this.$behaviours={}};(function(){this.add=function(a,b,c){switch(undefined){case this.$behaviours:this.$behaviours={};case this.$behaviours[a]:this.$behaviours[a]={}}this.$behaviours[a][b]=c},this.addBehaviours=function(a){for(var b in a)for(var c in a[b])this.add(b,c,a[b][c])},this.remove=function(a){this.$behaviours&&this.$behaviours[a]&&delete this.$behaviours[a]},this.inherit=function(a,b){if(typeof a=="function")var c=(new a).getBehaviours(b);else var c=a.getBehaviours(b);this.addBehaviours(c)},this.getBehaviours=function(a){if(!a)return this.$behaviours;var b={};for(var c=0;c<a.length;c++)this.$behaviours[a[c]]&&(b[a[c]]=this.$behaviours[a[c]]);return b}}).call(d.prototype),b.Behaviour=d}),ace.define("ace/unicode",["require","exports","module"],function(a,b,c){function d(a){var c=/\w{4}/g;for(var d in a)b.packages[d]=a[d].replace(c,"\\u$&")}b.packages={},d({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"})}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/range","ace/anchor"],function(a,b,c){var d=a("./lib/oop"),e=a("./lib/event_emitter").EventEmitter,f=a("./range").Range,g=a("./anchor").Anchor,h=function(a){this.$lines=[],a.length==0?this.$lines=[""]:Array.isArray(a)?this.insertLines(0,a):this.insert({row:0,column:0},a)};(function(){d.implement(this,e),this.setValue=function(a){var b=this.getLength();this.remove(new f(0,0,b,this.getLine(b-1).length)),this.insert({row:0,column:0},a)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(a,b){return new g(this,a,b)},"aaa".split(/a/).length==0?this.$split=function(a){return a.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(a){return a.split(/\r\n|\r|\n/)},this.$detectNewLine=function(a){var b=a.match(/^.*?(\r\n|\r|\n)/m);b?this.$autoNewLine=b[1]:this.$autoNewLine="\n"},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";case"auto":return this.$autoNewLine}},this.$autoNewLine="\n",this.$newLineMode="auto",this.setNewLineMode=function(a){if(this.$newLineMode===a)return;this.$newLineMode=a},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(a){return a=="\r\n"||a=="\r"||a=="\n"},this.getLine=function(a){return this.$lines[a]||""},this.getLines=function(a,b){return this.$lines.slice(a,b+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(a){if(a.start.row==a.end.row)return this.$lines[a.start.row].substring(a.start.column,a.end.column);var b=this.getLines(a.start.row+1,a.end.row-1);return b.unshift((this.$lines[a.start.row]||"").substring(a.start.column)),b.push((this.$lines[a.end.row]||"").substring(0,a.end.column)),b.join(this.getNewLineCharacter())},this.$clipPosition=function(a){var b=this.getLength();return a.row>=b&&(a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length),a},this.insert=function(a,b){if(!b||b.length===0)return a;a=this.$clipPosition(a),this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),d=c.splice(0,1)[0],e=c.length==0?null:c.splice(c.length-1,1)[0];return a=this.insertInLine(a,d),e!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,e||"")),a},this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};if(b.length>65535){var c=this.insertLines(a,b.slice(65535));b=b.slice(0,65535)}var d=[a,0];d.push.apply(d,b),this.$lines.splice.apply(this.$lines,d);var e=new f(a,0,a+b.length,0),g={action:"insertLines",range:e,lines:b};return this._emit("change",{data:g}),c||e.end},this.insertNewLine=function(a){a=this.$clipPosition(a);var b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column),this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));var c={row:a.row+1,column:0},d={action:"insertText",range:f.fromPoints(a,c),text:this.getNewLineCharacter()};return this._emit("change",{data:d}),c},this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);var d={row:a.row,column:a.column+b.length},e={action:"insertText",range:f.fromPoints(a,d),text:b};return this._emit("change",{data:e}),d},this.remove=function(a){a.start=this.$clipPosition(a.start),a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var d=a.start.column==0?b:b+1,e=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column),e>=d&&this.removeLines(d,e),d!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,a.start.column,a.end.column);return a.start},this.removeInLine=function(a,b,c){if(b==c)return;var d=new f(a,b,a,c),e=this.getLine(a),g=e.substring(b,c),h=e.substring(0,b)+e.substring(c,e.length);this.$lines.splice(a,1,h);var i={action:"removeText",range:d,text:g};return this._emit("change",{data:i}),d.start},this.removeLines=function(a,b){var c=new f(a,0,b+1,0),d=this.$lines.splice(a,b-a+1),e={action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:d};return this._emit("change",{data:e}),d},this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),d=new f(a,b.length,a+1,0),e=b+c;this.$lines.splice(a,2,e);var g={action:"removeText",range:d,text:this.getNewLineCharacter()};this._emit("change",{data:g})},this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);if(b)var c=this.insert(a.start,b);else c=a.start;return c},this.applyDeltas=function(a){for(var b=0;b<a.length;b++){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.insertLines(d.start.row,c.lines):c.action=="insertText"?this.insert(d.start,c.text):c.action=="removeLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="removeText"&&this.remove(d)}},this.revertDeltas=function(a){for(var b=a.length-1;b>=0;b--){var c=a[b],d=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(d.start.row,d.end.row-1):c.action=="insertText"?this.remove(d):c.action=="removeLines"?this.insertLines(d.start.row,c.lines):c.action=="removeText"&&this.insert(d.start,c.text)}}}).call(h.prototype),b.Document=h}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(a,b,c){var d=a("./lib/oop"),e=a("./lib/event_emitter").EventEmitter,f=b.Anchor=function(a,b,c){this.document=a,typeof c=="undefined"?this.setPosition(b.row,b.column):this.setPosition(b,c),this.$onChange=this.onChange.bind(this),a.on("change",this.$onChange)};(function(){d.implement(this,e),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.onChange=function(a){var b=a.data,c=b.range;if(c.start.row==c.end.row&&c.start.row!=this.row)return;if(c.start.row>this.row)return;if(c.start.row==this.row&&c.start.column>this.column)return;var d=this.row,e=this.column;b.action==="insertText"?c.start.row===d&&c.start.column<=e?c.start.row===c.end.row?e+=c.end.column-c.start.column:(e-=c.start.column,d+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row<d&&(d+=c.end.row-c.start.row):b.action==="insertLines"?c.start.row<=d&&(d+=c.end.row-c.start.row):b.action=="removeText"?c.start.row==d&&c.start.column<e?c.end.column>=e?e=c.start.column:e=Math.max(0,e-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row<d?(c.end.row==d&&(e=Math.max(0,e-c.end.column)+c.start.column),d-=c.end.row-c.start.row):c.end.row==d&&(d-=c.end.row-c.start.row,e=Math.max(0,e-c.end.column)+c.start.column):b.action=="removeLines"&&c.start.row<=d&&(c.end.row<=d?d-=c.end.row-c.start.row:(d=c.start.row,e=0)),this.setPosition(d,e,!0)},this.setPosition=function(a,b,c){var d;c?d={row:a,column:b}:d=this.$clipPositionToDocument(a,b);if(this.row==d.row&&this.column==d.column)return;var e={row:this.row,column:this.column};this.row=d.row,this.column=d.column,this._emit("change",{old:e,value:d})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.$clipPositionToDocument=function(a,b){var c={};return a>=this.document.getLength()?(c.row=Math.max(0,this.document.getLength()-1),c.column=this.document.getLine(c.row).length):a<0?(c.row=0,c.column=0):(c.row=a,c.column=Math.min(this.document.getLine(c.row).length,Math.max(0,b))),b<0&&(c.column=0),c}}).call(f.prototype)}),ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(a,b,c){var d=a("./lib/oop"),e=a("./lib/event_emitter").EventEmitter,f=5e3,g=function(a,b){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=a;var c=this;this.$worker=function(){if(!c.running)return;var a=new Date,b=c.currentLine,d=c.doc,e=0,f=d.getLength();while(c.currentLine<f){c.$tokenizeRow(c.currentLine);while(c.lines[c.currentLine])c.currentLine++;e++;if(e%5==0&&new Date-a>20){c.fireUpdateEvent(b,c.currentLine-1),c.running=setTimeout(c.$worker,20);return}}c.running=!1,c.fireUpdateEvent(b,f-1)}};(function(){d.implement(this,e),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(a,b){var c={first:a,last:b};this._emit("update",{data:c})},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.$updateOnChange=function(a){var b=a.range,c=b.start.row,d=b.end.row-c;if(d===0)this.lines[c]=null;else if(a.action=="removeText"||a.action=="removeLines")this.lines.splice(c,d+1,null),this.states.splice(c,d+1,null);else{var e=Array(d+1);e.unshift(c,1),this.lines.splice.apply(this.lines,e),this.states.splice.apply(this.states,e)}this.currentLine=Math.min(c,this.currentLine,this.doc.getLength()),this.stop(),this.running=setTimeout(this.$worker,700)},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a){return this.lines[a]||this.$tokenizeRow(a)},this.getState=function(a){return this.currentLine==a&&this.$tokenizeRow(a),this.states[a]||"start"},this.$tokenizeRow=function(a){var b=this.doc.getLine(a),c=this.states[a-1];if(b.length>f){var d={value:b.substr(f),type:"text"};b=b.slice(0,f)}var e=this.tokenizer.getLineTokens(b,c);return d&&(e.tokens.push(d),e.state="start"),this.states[a]!==e.state?(this.states[a]=e.state,this.lines[a+1]=null,this.currentLine>a+1&&(this.currentLine=a+1)):this.currentLine==a&&(this.currentLine=a+1),this.lines[a]=e.tokens}}).call(g.prototype),b.BackgroundTokenizer=g}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(a,b,c){var d=a("./lib/lang"),e=a("./lib/oop"),f=a("./range").Range,g=function(a,b,c){this.setRegexp(a),this.clazz=b,this.type=c||"text"};(function(){this.setRegexp=function(a){if(this.regExp+""==a+"")return;this.regExp=a,this.cache=[]},this.update=function(a,b,c,e){if(!this.regExp)return;var g=e.firstRow,h=e.lastRow;for(var i=g;i<=h;i++){var j=this.cache[i];j==null&&(j=d.getMatchOffsets(c.getLine(i),this.regExp),j=j.map(function(a){return new f(i,a.offset,i,a.offset+a.length)}),this.cache[i]=j.length?j:"");for(var k=j.length;k--;)b.drawSingleLineMarker(a,j[k].toScreenRange(c),this.clazz,e,null,this.type)}}}).call(g.prototype),b.SearchHighlight=g}),ace.define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(a,b,c){function h(){this.getFoldAt=function(a,b,c){var d=this.getFoldLine(a);if(!d)return null;var e=d.folds;for(var f=0;f<e.length;f++){var g=e[f];if(g.range.contains(a,b)){if(c==1&&g.range.isEnd(a,b))continue;if(c==-1&&g.range.isStart(a,b))continue;return g}}},this.getFoldsInRange=function(a){a=a.clone();var b=a.start,c=a.end,d=this.$foldData,e=[];b.column+=1,c.column-=1;for(var f=0;f<d.length;f++){var g=d[f].range.compareRange(a);if(g==2)continue;if(g==-2)break;var h=d[f].folds;for(var i=0;i<h.length;i++){var j=h[i];g=j.range.compareRange(a);if(g==-2)break;if(g==2)continue;if(g==42)break;e.push(j)}}return e},this.getAllFolds=function(){function c(b){a.push(b);if(!b.subFolds)return;for(var d=0;d<b.subFolds.length;d++)c(b.subFolds[d])}var a=[],b=this.$foldData;for(var d=0;d<b.length;d++)for(var e=0;e<b[d].folds.length;e++)c(b[d].folds[e]);return a},this.getFoldStringAt=function(a,b,c,d){d=d||this.getFoldLine(a);if(!d)return null;var e={end:{column:0}},f,g;for(var h=0;h<d.folds.length;h++){g=d.folds[h];var i=g.range.compareEnd(a,b);if(i==-1){f=this.getLine(g.start.row).substring(e.end.column,g.start.column);break}if(i===0)return null;e=g}return f||(f=this.getLine(g.start.row).substring(e.end.column)),c==-1?f.substring(0,b-e.end.column):c==1?f.substring(b-e.end.column):f},this.getFoldLine=function(a,b){var c=this.$foldData,d=0;b&&(d=c.indexOf(b)),d==-1&&(d=0);for(d;d<c.length;d++){var e=c[d];if(e.start.row<=a&&e.end.row>=a)return e;if(e.end.row>a)return null}return null},this.getNextFoldLine=function(a,b){var c=this.$foldData,d=0;b&&(d=c.indexOf(b)),d==-1&&(d=0);for(d;d<c.length;d++){var e=c[d];if(e.end.row>=a)return e}return null},this.getFoldedRowCount=function(a,b){var c=this.$foldData,d=b-a+1;for(var e=0;e<c.length;e++){var f=c[e],g=f.end.row,h=f.start.row;if(g>=b){h<b&&(h>=a?d-=b-h:d=0);break}g>=a&&(h>=a?d-=g-h:d-=g-a+1)}return d},this.$addFoldLine=function(a){return this.$foldData.push(a),this.$foldData.sort(function(a,b){return a.start.row-b.start.row}),a},this.addFold=function(a,b){var c=this.$foldData,d=!1,g;a instanceof f?g=a:g=new f(b,a),this.$clipRangeToDocument(g.range);var h=g.start.row,i=g.start.column,j=g.end.row,k=g.end.column;if(g.placeholder.length<2)throw"Placeholder has to be at least 2 characters";if(h==j&&k-i<2)throw"The range has to be at least 2 characters width";var l=this.getFoldAt(h,i,1),m=this.getFoldAt(j,k,-1);if(l&&m==l)return l.addSubFold(g);if(l&&!l.range.isStart(h,i)||m&&!m.range.isEnd(j,k))throw"A fold can't intersect already existing fold"+g.range+l.range;var n=this.getFoldsInRange(g.range);n.length>0&&(this.removeFolds(n),g.subFolds=n);for(var o=0;o<c.length;o++){var p=c[o];if(j==p.start.row){p.addFold(g),d=!0;break}if(h==p.end.row){p.addFold(g),d=!0;if(!g.sameRow){var q=c[o+1];if(q&&q.start.row==j){p.merge(q);break}}break}if(j<=p.start.row)break}return d||(p=this.$addFoldLine(new e(this.$foldData,g))),this.$useWrapMode?this.$updateWrapData(p.start.row,p.start.row):this.$updateRowLengthCache(p.start.row,p.start.row),this.$modified=!0,this._emit("changeFold",{data:g}),g},this.addFolds=function(a){a.forEach(function(a){this.addFold(a)},this)},this.removeFold=function(a){var b=a.foldLine,c=b.start.row,d=b.end.row,e=this.$foldData,f=b.folds;if(f.length==1)e.splice(e.indexOf(b),1);else if(b.range.isEnd(a.end.row,a.end.column))f.pop(),b.end.row=f[f.length-1].end.row,b.end.column=f[f.length-1].end.column;else if(b.range.isStart(a.start.row,a.start.column))f.shift(),b.start.row=f[0].start.row,b.start.column=f[0].start.column;else if(a.sameRow)f.splice(f.indexOf(a),1);else{var g=b.split(a.start.row,a.start.column);f=g.folds,f.shift(),g.start.row=f[0].start.row,g.start.column=f[0].start.column}this.$useWrapMode?this.$updateWrapData(c,d):this.$updateRowLengthCache(c,d),this.$modified=!0,this._emit("changeFold",{data:a})},this.removeFolds=function(a){var b=[];for(var c=0;c<a.length;c++)b.push(a[c]);b.forEach(function(a){this.removeFold(a)},this),this.$modified=!0},this.expandFold=function(a){this.removeFold(a),a.subFolds.forEach(function(a){this.addFold(a)},this),a.subFolds=[]},this.expandFolds=function(a){a.forEach(function(a){this.expandFold(a)},this)},this.unfold=function(a,b){var c,e;a==null?c=new d(0,0,this.getLength(),0):typeof a=="number"?c=new d(a,0,a,this.getLine(a).length):"row"in a?c=d.fromPoints(a,a):c=a,e=this.getFoldsInRange(c);if(b)this.removeFolds(e);else while(e.length)this.expandFolds(e),e=this.getFoldsInRange(c)},this.isRowFolded=function(a,b){return!!this.getFoldLine(a,b)},this.getRowFoldEnd=function(a,b){var c=this.getFoldLine(a,b);return c?c.end.row:a},this.getFoldDisplayLine=function(a,b,c,d,e){d==null&&(d=a.start.row,e=0),b==null&&(b=a.end.row,c=this.getLine(b).length);var f=this.doc,g="";return a.walk(function(a,b,c,h){if(b<d)return;if(b==d){if(c<e)return;h=Math.max(e,h)}a?g+=a:g+=f.getLine(b).substring(h,c)}.bind(this),b,c),g},this.getDisplayLine=function(a,b,c,d){var e=this.getFoldLine(a);if(!e){var f;return f=this.doc.getLine(a),f.substring(d||0,b||f.length)}return this.getFoldDisplayLine(e,a,b,c,d)},this.$cloneFoldData=function(){var a=[];return a=this.$foldData.map(function(b){var c=b.folds.map(function(a){return a.clone()});return new e(a,c)}),a},this.toggleFold=function(a){var b=this.selection,c=b.getRange(),d,e;if(c.isEmpty()){var f=c.start;d=this.getFoldAt(f.row,f.column);if(d){this.expandFold(d);return}(e=this.findMatchingBracket(f))?c.comparePoint(e)==1?c.end=e:(c.start=e,c.start.column++,c.end.column--):(e=this.findMatchingBracket({row:f.row,column:f.column+1}))?(c.comparePoint(e)==1?c.end=e:c.start=e,c.start.column++):c=this.getCommentFoldRange(f.row,f.column)||c}else{var g=this.getFoldsInRange(c);if(a&&g.length){this.expandFolds(g);return}g.length==1&&(d=g[0])}d||(d=this.getFoldAt(c.start.row,c.start.column));if(d&&d.range.toString()==c.toString()){this.expandFold(d);return}var h="...";if(!c.isMultiLine()){h=this.getTextRange(c);if(h.length<4)return;h=h.trim().substring(0,2)+".."}this.addFold(h,c)},this.getCommentFoldRange=function(a,b){var c=new g(this,a,b),e=c.getCurrentToken();if(e&&/^comment|string/.test(e.type)){var f=new d,h=new RegExp(e.type.replace(/\..*/,"\\."));do e=c.stepBackward();while(e&&h.test(e.type));c.stepForward(),f.start.row=c.getCurrentTokenRow(),f.start.column=c.getCurrentTokenColumn()+2,c=new g(this,a,b);do e=c.stepForward();while(e&&h.test(e.type));return e=c.stepBackward(),f.end.row=c.getCurrentTokenRow(),f.end.column=c.getCurrentTokenColumn()+e.value.length,f}},this.foldAll=function(a,b){var c=this.foldWidgets;b=b||this.getLength();for(var d=a||0;d<b;d++){c[d]==null&&(c[d]=this.getFoldWidget(d));if(c[d]!="start")continue;var e=this.getFoldWidgetRange(d);if(e&&e.end.row<b)try{this.addFold("...",e)}catch(f){}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(a){if(!this.$foldStyles[a])throw new Error("invalid fold style: "+a+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle==a)return;this.$foldStyle=a,a=="manual"&&this.unfold();var b=this.$foldMode;this.$setFolding(null),this.$setFolding(b)},this.$setFolding=function(a){if(this.$foldMode==a)return;this.$foldMode=a,this.removeListener("change",this.$updateFoldWidgets),this._emit("changeAnnotation");if(!a||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=a.getFoldWidget.bind(a,this,this.$foldStyle),this.getFoldWidgetRange=a.getFoldWidgetRange.bind(a,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets)},this.onFoldWidgetClick=function(a,b){var c=this.getFoldWidget(a),d=this.getLine(a),e=b.shiftKey,f=e||b.ctrlKey||b.altKey||b.metaKey,g;c=="end"?g=this.getFoldAt(a,0,-1):g=this.getFoldAt(a,d.length,1);if(g){f?this.removeFold(g):this.expandFold(g);return}var h=this.getFoldWidgetRange(a);if(h){if(!h.isMultiLine()){g=this.getFoldAt(h.start.row,h.start.column,1);if(g&&h.isEqual(g.range)){this.removeFold(g);return}}e||this.addFold("...",h),f&&this.foldAll(h.start.row+1,h.end.row)}else f&&this.foldAll(a+1,this.getLength()),(b.target||b.srcElement).className+=" invalid"},this.updateFoldWidgets=function(a){var b=a.data,c=b.range,d=c.start.row,e=c.end.row-d;if(e===0)this.foldWidgets[d]=null;else if(b.action=="removeText"||b.action=="removeLines")this.foldWidgets.splice(d,e+1,null);else{var f=Array(e+1);f.unshift(d,1),this.foldWidgets.splice.apply(this.foldWidgets,f)}}}var d=a("../range").Range,e=a("./fold_line").FoldLine,f=a("./fold").Fold,g=a("../token_iterator").TokenIterator;b.Folding=h}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(a,b,c){function e(a,b){this.foldData=a,Array.isArray(b)?this.folds=b:b=this.folds=[b];var c=b[b.length-1];this.range=new d(b[0].start.row,b[0].start.column,c.end.row,c.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(a){a.setFoldLine(this)},this)}var d=a("../range").Range;(function(){this.shiftRow=function(a){this.start.row+=a,this.end.row+=a,this.folds.forEach(function(b){b.start.row+=a,b.end.row+=a})},this.addFold=function(a){if(a.sameRow){if(a.start.row<this.startRow||a.endRow>this.endRow)throw"Can't add a fold to this FoldLine as it has no connection";this.folds.push(a),this.folds.sort(function(a,b){return-a.range.compareEnd(b.start.row,b.start.column)}),this.range.compareEnd(a.start.row,a.start.column)>0?(this.end.row=a.end.row,this.end.column=a.end.column):this.range.compareStart(a.end.row,a.end.column)<0&&(this.start.row=a.start.row,this.start.column=a.start.column)}else if(a.start.row==this.end.row)this.folds.push(a),this.end.row=a.end.row,this.end.column=a.end.column;else{if(a.end.row!=this.start.row)throw"Trying to add fold to FoldRow that doesn't have a matching row";this.folds.unshift(a),this.start.row=a.start.row,this.start.column=a.start.column}a.foldLine=this},this.containsRow=function(a){return a>=this.start.row&&a<=this.end.row},this.walk=function(a,b,c){var d=0,e=this.folds,f,g,h,i=!0;b==null&&(b=this.end.row,c=this.end.column);for(var j=0;j<e.length;j++){f=e[j],g=f.range.compareStart(b,c);if(g==-1){a(null,b,c,d,i);return}h=a(null,f.start.row,f.start.column,d,i),h=!h&&a(f.placeholder,f.start.row,f.start.column,d);if(h||g==0)return;i=!f.sameRow,d=f.end.column}a(null,b,c,d,i)},this.getNextFoldTo=function(a,b){var c,d;for(var e=0;e<this.folds.length;e++){c=this.folds[e],d=c.range.compareEnd(a,b);if(d==-1)return{fold:c,kind:"after"};if(d==0)return{fold:c,kind:"inside"}}return null},this.addRemoveChars=function(a,b,c){var d=this.getNextFoldTo(a,b),e,f;if(d){e=d.fold;if(d.kind=="inside"&&e.start.column!=b&&e.start.row!=a)window.console&&window.console.log(a,b,e);else if(e.start.row==a){f=this.folds;var g=f.indexOf(e);g==0&&(this.start.column+=c);for(g;g<f.length;g++){e=f[g],e.start.column+=c;if(!e.sameRow)return;e.end.column+=c}this.end.column+=c}}},this.split=function(a,b){var c=this.getNextFoldTo(a,b).fold,d=this.folds,f=this.foldData;if(!c)return null;var g=d.indexOf(c),h=d[g-1];this.end.row=h.end.row,this.end.column=h.end.column,d=d.splice(g,d.length-g);var i=new e(f,d);return f.splice(f.indexOf(this)+1,0,i),i},this.merge=function(a){var b=a.folds;for(var c=0;c<b.length;c++)this.addFold(b[c]);var d=this.foldData;d.splice(d.indexOf(a),1)},this.toString=function(){var a=[this.range.toString()+": ["];return this.folds.forEach(function(b){a.push("  "+b.toString())}),a.push("]"),a.join("\n")},this.idxToPosition=function(a){var b=0,c;for(var d=0;d<this.folds.length;d++){var c=this.folds[d];a-=c.start.column-b;if(a<0)return{row:c.start.row,column:c.start.column+a};a-=c.placeholder.length;if(a<0)return c.start;b=c.end.column}return{row:this.end.row,column:this.end.column+a}}}).call(e.prototype),b.FoldLine=e}),ace.define("ace/edit_session/fold",["require","exports","module"],function(a,b,c){var d=b.Fold=function(a,b){this.foldLine=null,this.placeholder=b,this.range=a,this.start=a.start,this.end=a.end,this.sameRow=a.start.row==a.end.row,this.subFolds=[]};(function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(a){this.foldLine=a,this.subFolds.forEach(function(b){b.setFoldLine(a)})},this.clone=function(){var a=this.range.clone(),b=new d(a,this.placeholder);return this.subFolds.forEach(function(a){b.subFolds.push(a.clone())}),b},this.addSubFold=function(a){if(this.range.isEqual(a))return this;if(!this.range.containsRange(a))throw"A fold can't intersect already existing fold"+a.range+this.range;var b=a.range.start.row,c=a.range.start.column;for(var d=0,e=-1;d<this.subFolds.length;d++){e=this.subFolds[d].range.compare(b,c);if(e!=1)break}var f=this.subFolds[d];if(e==0)return f.addSubFold(a);var b=a.range.end.row,c=a.range.end.column;for(var g=d,e=-1;g<this.subFolds.length;g++){e=this.subFolds[g].range.compare(b,c);if(e!=1)break}var h=this.subFolds[g];if(e==0)throw"A fold can't intersect already existing fold"+a.range+this.range;var i=this.subFolds.splice(d,g-d,a);return a.setFoldLine(this.foldLine),a}}).call(d.prototype)}),ace.define("ace/token_iterator",["require","exports","module"],function(a,b,c){var d=function(a,b,c){this.$session=a,this.$row=b,this.$rowTokens=a.getTokens(b);var d=a.getTokenAt(b,c);this.$tokenIndex=d?d.index:-1};(function(){this.stepBackward=function(){this.$tokenIndex-=1;while(this.$tokenIndex<0){this.$row-=1;if(this.$row<0)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){var a=this.$session.getLength();this.$tokenIndex+=1;while(this.$tokenIndex>=this.$rowTokens.length){this.$row+=1;if(this.$row>=a)return this.$row=a-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var a=this.$rowTokens,b=this.$tokenIndex,c=a[b].start;if(c!==undefined)return c;c=0;while(b>0)b-=1,c+=a[b].value.length;return c}}).call(d.prototype),b.TokenIterator=d}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(a,b,c){function f(){this.findMatchingBracket=function(a){if(a.column==0)return null;var b=this.getLine(a.row).charAt(a.column-1);if(b=="")return null;var c=b.match(/([\(\[\{])|([\)\]\}])/);return c?c[1]?this.$findClosingBracket(c[1],a):this.$findOpeningBracket(c[2],a):null},this.getBracketRange=function(a){var b=this.getLine(a.row),c=!0,d,f=b.charAt(a.column-1),g=f&&f.match(/([\(\[\{])|([\)\]\}])/);g||(f=b.charAt(a.column),a={row:a.row,column:a.column+1},g=f&&f.match(/([\(\[\{])|([\)\]\}])/),c=!1);if(!g)return null;if(g[1]){var h=this.$findClosingBracket(g[1],a);if(!h)return null;d=e.fromPoints(a,h),c||(d.end.column++,d.start.column--),d.cursor=d.end}else{var h=this.$findOpeningBracket(g[2],a);if(!h)return null;d=e.fromPoints(h,a),c||(d.start.column++,d.end.column--),d.cursor=d.start}return d},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(a,b,c){var e=this.$brackets[a],f=1,g=new d(this,b.row,b.column),h=g.getCurrentToken();h||(h=g.stepForward());if(!h)return;c||(c=new RegExp("(\\.?"+h.type.replace(".","\\.").replace("rparen",".paren")+")+"));var i=b.column-g.getCurrentTokenColumn()-2,j=h.value;for(;;){while(i>=0){var k=j.charAt(i);if(k==e){f-=1;if(f==0)return{row:g.getCurrentTokenRow(),column:i+g.getCurrentTokenColumn()}}else k==a&&(f+=1);i-=1}do h=g.stepBackward();while(h&&!c.test(h.type));if(h==null)break;j=h.value,i=j.length-1}return null},this.$findClosingBracket=function(a,b,c){var e=this.$brackets[a],f=1,g=new d(this,b.row,b.column),h=g.getCurrentToken();h||(h=g.stepForward());if(!h)return;c||(c=new RegExp("(\\.?"+h.type.replace(".","\\.").replace("lparen",".paren")+")+"));var i=b.column-g.getCurrentTokenColumn();for(;;){var j=h.value,k=j.length;while(i<k){var l=j.charAt(i);if(l==e){f-=1;if(f==0)return{row:g.getCurrentTokenRow(),column:i+g.getCurrentTokenColumn()}}else l==a&&(f+=1);i+=1}do h=g.stepForward();while(h&&!c.test(h.type));if(h==null)break;i=0}return null}}var d=a("../token_iterator").TokenIterator,e=a("../range").Range;b.BracketMatch=f}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(a,b,c){var d=a("./lib/lang"),e=a("./lib/oop"),f=a("./range").Range,g=function(){this.$options={}};(function(){this.set=function(a){return e.mixin(this.$options,a),this},this.getOptions=function(){return d.copyObject(this.$options)},this.setOptions=function(a){this.$options=a},this.find=function(a){var b=this.$matchIterator(a,this.$options);if(!b)return!1;var c=null;return b.forEach(function(a,b,d){if(!a.start){var e=a.offset+(d||0);c=new f(b,e,b,e+a.length)}else c=a;return!0}),c},this.findAll=function(a){var b=this.$options;if(!b.needle)return[];this.$assembleRegExp(b);var c=b.range,e=c?a.getLines(c.start.row,c.end.row):a.doc.getAllLines(),g=[],h=b.re;if(b.$isMultiLine){var i=h.length,j=e.length-i;for(var k=h.offset||0;k<=j;k++){for(var l=0;l<i;l++)if(e[k+l].search(h[l])==-1)break;var m=e[k],n=e[k+i-1],o=m.match(h[0])[0].length,p=n.match(h[i-1])[0].length;g.push(new f(k,m.length-o,k+i-1,p))}}else for(var q=0;q<e.length;q++){var r=d.getMatchOffsets(e[q],h);for(var l=0;l<r.length;l++){var s=r[l];g.push(new f(q,s.offset,q,s.offset+s.length))}}if(c){var t=c.start.column,u=c.start.column,q=0,l=g.length-1;while(q<l&&g[q].start.column<t&&g[q].start.row==c.start.row)q++;while(q<l&&g[l].end.column>u&&g[l].end.row==c.end.row)l--;return g.slice(q,l+1)}return g},this.replace=function(a,b){var c=this.$options,d=this.$assembleRegExp(c);if(c.$isMultiLine)return b;if(!d)return;var e=d.exec(a);if(!e||e[0].length!=a.length)return null;b=a.replace(d,b);if(c.preserveCase){b=b.split("");for(var f=Math.min(a.length,a.length);f--;){var g=a[f];g&&g.toLowerCase()!=g?b[f]=b[f].toUpperCase():b[f]=b[f].toLowerCase()}b=b.join("")}return b},this.$matchIterator=function(a,b){var c=this.$assembleRegExp(b);if(!c)return!1;var e=this,g,h=b.backwards;if(b.$isMultiLine)var i=c.length,j=function(b,d,e){var h=b.search(c[0]);if(h==-1)return;for(var j=1;j<i;j++){b=a.getLine(d+j);if(b.search(c[j])==-1)return}var k=b.match(c[i-1])[0].length,l=new f(d,h,d+i-1,k);c.offset==1?(l.start.row--,l.start.column=Number.MAX_VALUE):e&&(l.start.column+=e);if(g(l))return!0};else if(h)var j=function(a,b,e){var f=d.getMatchOffsets(a,c);for(var h=f.length-1;h>=0;h--)if(g(f[h],b,e))return!0};else var j=function(a,b,e){var f=d.getMatchOffsets(a,c);for(var h=0;h<f.length;h++)if(g(f[h],b,e))return!0};return{forEach:function(c){g=c,e.$lineIterator(a,b).forEach(j)}}},this.$assembleRegExp=function(a){if(a.needle instanceof RegExp)return a.re=a.needle;var b=a.needle;if(!a.needle)return a.re=!1;a.regExp||(b=d.escapeRegExp(b)),a.wholeWord&&(b="\\b"+b+"\\b");var c=a.caseSensitive?"g":"gi";a.$isMultiLine=/[\n\r]/.test(b);if(a.$isMultiLine)return a.re=this.$assembleMultilineRegExp(b,c);try{var e=new RegExp(b,c)}catch(f){e=!1}return a.re=e},this.$assembleMultilineRegExp=function(a,b){var c=a.replace(/\r\n|\r|\n/g,"$\n^").split("\n"),d=[];for(var e=0;e<c.length;e++)try{d.push(new RegExp(c[e],b))}catch(f){return!1}return c[0]==""?(d.shift(),d.offset=1):d.offset=0,d},this.$lineIterator=function(a,b){var c=b.backwards==1,d=b.skipCurrent!=0,e=b.range,f=b.start;f||(f=e?e[c?"end":"start"]:a.selection.getRange()),f.start&&(f=f[d!=c?"end":"start"]);var g=e?e.start.row:0,h=e?e.end.row:a.getLength()-1,i=c?function(c){var d=f.row,e=a.getLine(d).substring(0,f.column);if(c(e,d))return;for(d--;d>=g;d--)if(c(a.getLine(d),d))return;if(b.wrap==0)return;for(d=h,g=f.row;d>=g;d--)if(c(a.getLine(d),d))return}:function(c){var d=f.row,e=a.getLine(d).substr(f.column);if(c(e,d,f.column))return;for(d+=1;d<=h;d++)if(c(a.getLine(d),d))return;if(b.wrap==0)return;for(d=g,h=f.row;d<=h;d++)if(c(a.getLine(d),d))return};return{forEach:i}}}).call(g.prototype),b.Search=g}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(a,b,c){var d=a("../lib/oop"),e=a("../keyboard/hash_handler").HashHandler,f=a("../lib/event_emitter").EventEmitter,g=function(a,b){this.platform=a,this.commands={},this.commmandKeyBinding={},this.addCommands(b),this.setDefaultHandler("exec",function(a){return a.command.exec(a.editor,a.args||{})})};d.inherits(g,e),function(){d.implement(this,f),this.exec=function(a,b,c){typeof a=="string"&&(a=this.commands[a]);if(!a)return!1;if(b&&b.$readOnly&&!a.readOnly)return!1;var d=this._emit("exec",{editor:b,command:a,args:c});return d===!1?!1:!0},this.toggleRecording=function(a){if(this.$inReplay)return;return a&&a._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(a){this.macro.push([a.command,a.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(a){if(this.$inReplay||!this.macro)return;if(this.recording)return this.toggleRecording(a);try{this.$inReplay=!0,this.macro.forEach(function(b){typeof b=="string"?this.exec(b,a):this.exec(b[0],a,b[1])},this)}finally{this.$inReplay=!1}},this.trimMacro=function(a){return a.map(function(a){return typeof a[0]!="string"&&(a[0]=a[0].name),a[1]||(a=a[0]),a})}}.call(g.prototype),b.CommandManager=g}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys"],function(a,b,c){function e(a,b){this.platform=b,this.commands={},this.commmandKeyBinding={},this.addCommands(a)}var d=a("../lib/keys");(function(){this.addCommand=function(a){this.commands[a.name]&&this.removeCommand(a),this.commands[a.name]=a,a.bindKey&&this._buildKeyHash(a)},this.removeCommand=function(a){var b=typeof a=="string"?a:a.name;a=this.commands[b],delete this.commands[b];var c=this.commmandKeyBinding;for(var d in c)for(var e in c[d])c[d][e]==a&&delete c[d][e]},this.bindKey=function(a,b){if(!a)return;if(typeof b=="function"){this.addCommand({exec:b,bindKey:a,name:a});return}var c=this.commmandKeyBinding;a.split("|").forEach(function(a){var d=this.parseKeys(a,b),e=d.hashId;(c[e]||(c[e]={}))[d.key]=b},this)},this.addCommands=function(a){a&&Object.keys(a).forEach(function(b){var c=a[b];if(typeof c=="string")return this.bindKey(c,b);typeof c=="function"&&(c={exec:c}),c.name||(c.name=b),this.addCommand(c)},this)},this.removeCommands=function(a){Object.keys(a).forEach(function(b){this.removeCommand(a[b])},this)},this.bindKeys=function(a){Object.keys(a).forEach(function(b){this.bindKey(b,a[b])},this)},this._buildKeyHash=function(a){var b=a.bindKey;if(!b)return;var c=typeof b=="string"?b:b[this.platform];this.bindKey(c,a)},this.parseKeys=function(a){var b,c=0,e=a.toLowerCase().trim().split(/\s*\-\s*/);for(var f=0,g=e.length;f<g;f++)d.KEY_MODS[e[f]]?c|=d.KEY_MODS[e[f]]:b=e[f]||"-";return e[0]=="text"&&e.length==2&&(c=-1,b=e[1]),{key:b,hashId:c}},this.findKeyCommand=function(b,c){var d=this.commmandKeyBinding;return d[b]&&d[b][c.toLowerCase()]},this.handleKeyboard=function(a,b,c,d){return{command:this.findKeyCommand(b,c)}}}).call(e.prototype),b.HashHandler=e}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang"],function(a,b,c){function e(a,b){return{win:a,mac:b}}var d=a("../lib/lang");b.commands=[{name:"selectall",bindKey:e("Ctrl-A","Command-A"),exec:function(a){a.selectAll()},readOnly:!0},{name:"centerselection",bindKey:e(null,"Ctrl-L"),exec:function(a){a.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:e("Ctrl-L","Command-L"),exec:function(a){var b=parseInt(prompt("Enter line number:"),10);isNaN(b)||a.gotoLine(b)},readOnly:!0},{name:"fold",bindKey:e("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(a){a.session.toggleFold(!1)},readOnly:!0},{name:"unfold",bindKey:e("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(a){a.session.toggleFold(!0)},readOnly:!0},{name:"foldall",bindKey:e("Alt-0","Command-Option-0"),exec:function(a){a.session.foldAll()},readOnly:!0},{name:"unfoldall",bindKey:e("Alt-Shift-0","Command-Option-Shift-0"),exec:function(a){a.session.unfold()},readOnly:!0},{name:"findnext",bindKey:e("Ctrl-K","Command-G"),exec:function(a){a.findNext()},readOnly:!0},{name:"findprevious",bindKey:e("Ctrl-Shift-K","Command-Shift-G"),exec:function(a){a.findPrevious()},readOnly:!0},{name:"find",bindKey:e("Ctrl-F","Command-F"),exec:function(a){var b=prompt("Find:",a.getCopyText());a.find(b)},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(a){a.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:e("Ctrl-Shift-Home","Command-Shift-Up"),exec:function(a){a.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0},{name:"gotostart",bindKey:e("Ctrl-Home","Command-Home|Command-Up"),exec:function(a){a.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0},{name:"selectup",bindKey:e("Shift-Up","Shift-Up"),exec:function(a){a.getSelection().selectUp()},multiSelectAction:"forEach",readOnly:!0},{name:"golineup",bindKey:e("Up","Up|Ctrl-P"),exec:function(a,b){a.navigateUp(b.times)},multiSelectAction:"forEach",readOnly:!0},{name:"selecttoend",bindKey:e("Ctrl-Shift-End","Command-Shift-Down"),exec:function(a){a.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0},{name:"gotoend",bindKey:e("Ctrl-End","Command-End|Command-Down"),exec:function(a){a.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0},{name:"selectdown",bindKey:e("Shift-Down","Shift-Down"),exec:function(a){a.getSelection().selectDown()},multiSelectAction:"forEach",readOnly:!0},{name:"golinedown",bindKey:e("Down","Down|Ctrl-N"),exec:function(a,b){a.navigateDown(b.times)},multiSelectAction:"forEach",readOnly:!0},{name:"selectwordleft",bindKey:e("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(a){a.getSelection().selectWordLeft()},multiSelectAction:"forEach",readOnly:!0},{name:"gotowordleft",bindKey:e("Ctrl-Left","Option-Left"),exec:function(a){a.navigateWordLeft()},multiSelectAction:"forEach",readOnly:!0},{name:"selecttolinestart",bindKey:e("Alt-Shift-Left","Command-Shift-Left"),exec:function(a){a.getSelection().selectLineStart()},multiSelectAction:"forEach",readOnly:!0},{name:"gotolinestart",bindKey:e("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(a){a.navigateLineStart()},multiSelectAction:"forEach",readOnly:!0},{name:"selectleft",bindKey:e("Shift-Left","Shift-Left"),exec:function(a){a.getSelection().selectLeft()},multiSelectAction:"forEach",readOnly:!0},{name:"gotoleft",bindKey:e("Left","Left|Ctrl-B"),exec:function(a,b){a.navigateLeft(b.times)},multiSelectAction:"forEach",readOnly:!0},{name:"selectwordright",bindKey:e("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(a){a.getSelection().selectWordRight()},multiSelectAction:"forEach",readOnly:!0},{name:"gotowordright",bindKey:e("Ctrl-Right","Option-Right"),exec:function(a){a.navigateWordRight()},multiSelectAction:"forEach",readOnly:!0},{name:"selecttolineend",bindKey:e("Alt-Shift-Right","Command-Shift-Right"),exec:function(a){a.getSelection().selectLineEnd()},multiSelectAction:"forEach",readOnly:!0},{name:"gotolineend",bindKey:e("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(a){a.navigateLineEnd()},multiSelectAction:"forEach",readOnly:!0},{name:"selectright",bindKey:e("Shift-Right","Shift-Right"),exec:function(a){a.getSelection().selectRight()},multiSelectAction:"forEach",readOnly:!0},{name:"gotoright",bindKey:e("Right","Right|Ctrl-F"),exec:function(a,b){a.navigateRight(b.times)},multiSelectAction:"forEach",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(a){a.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:e(null,"Option-PageDown"),exec:function(a){a.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:e("PageDown","PageDown|Ctrl-V"),exec:function(a){a.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(a){a.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:e(null,"Option-PageUp"),exec:function(a){a.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(a){a.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:e("Ctrl-Up",null),exec:function(a){a.renderer.scrollBy(0,-2*a.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:e("Ctrl-Down",null),exec:function(a){a.renderer.scrollBy(0,2*a.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(a){a.getSelection().selectLineStart()},multiSelectAction:"forEach",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(a){a.getSelection().selectLineEnd()},multiSelectAction:"forEach",readOnly:!0},{name:"togglerecording",bindKey:e("Ctrl-Alt-E","Command-Option-E"),exec:function(a){a.commands.toggleRecording(a)},readOnly:!0},{name:"replaymacro",bindKey:e("Ctrl-Shift-E","Command-Shift-E"),exec:function(a){a.commands.replay(a)},readOnly:!0},{name:"jumptomatching",bindKey:e("Ctrl-P","Ctrl-Shift-P"),exec:function(a){a.jumpToMatching()},multiSelectAction:"forEach",readOnly:!0},{name:"selecttomatching",bindKey:e("Ctrl-Shift-P",null),exec:function(a){a.jumpToMatching(!0)},readOnly:!0},{name:"cut",exec:function(a){var b=a.getSelectionRange();a._emit("cut",b),a.selection.isEmpty()||(a.session.remove(b),a.clearSelection())},multiSelectAction:"forEach"},{name:"removeline",bindKey:e("Ctrl-D","Command-D"),exec:function(a){a.removeLines()},multiSelectAction:"forEach"},{name:"duplicateSelection",bindKey:e("Ctrl-Shift-D","Command-Shift-D"),exec:function(a){a.duplicateSelection()},multiSelectAction:"forEach"},{name:"togglecomment",bindKey:e("Ctrl-/","Command-/"),exec:function(a){a.toggleCommentLines()},multiSelectAction:"forEach"},{name:"replace",bindKey:e("Ctrl-R","Command-Option-F"),exec:function(a){var b=prompt("Find:",a.getCopyText());if(!b)return;var c=prompt("Replacement:");if(!c)return;a.replace(c,{needle:b})}},{name:"replaceall",bindKey:e("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(a){var b=prompt("Find:");if(!b)return;var c=prompt("Replacement:");if(!c)return;a.replaceAll(c,{needle:b})}},{name:"undo",bindKey:e("Ctrl-Z","Command-Z"),exec:function(a){a.undo()}},{name:"redo",bindKey:e("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(a){a.redo()}},{name:"copylinesup",bindKey:e("Alt-Shift-Up","Command-Option-Up"),exec:function(a){a.copyLinesUp()}},{name:"movelinesup",bindKey:e("Alt-Up","Option-Up"),exec:function(a){a.moveLinesUp()}},{name:"copylinesdown",bindKey:e("Alt-Shift-Down","Command-Option-Down"),exec:function(a){a.copyLinesDown()}},{name:"movelinesdown",bindKey:e("Alt-Down","Option-Down"),exec:function(a){a.moveLinesDown()}},{name:"del",bindKey:e("Delete","Delete|Ctrl-D"),exec:function(a){a.remove("right")},multiSelectAction:"forEach"},{name:"backspace",bindKey:e("Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(a){a.remove("left")},multiSelectAction:"forEach"},{name:"removetolinestart",bindKey:e("Alt-Backspace","Command-Backspace"),exec:function(a){a.removeToLineStart()},multiSelectAction:"forEach"},{name:"removetolineend",bindKey:e("Alt-Delete","Ctrl-K"),exec:function(a){a.removeToLineEnd()},multiSelectAction:"forEach"},{name:"removewordleft",bindKey:e("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(a){a.removeWordLeft()},multiSelectAction:"forEach"},{name:"removewordright",bindKey:e("Ctrl-Delete","Alt-Delete"),exec:function(a){a.removeWordRight()},multiSelectAction:"forEach"},{name:"outdent",bindKey:e("Shift-Tab","Shift-Tab"),exec:function(a){a.blockOutdent()},multiSelectAction:"forEach"},{name:"indent",bindKey:e("Tab","Tab"),exec:function(a){a.indent()},multiSelectAction:"forEach"},{name:"insertstring",exec:function(a,b){a.insert(b)},multiSelectAction:"forEach"},{name:"inserttext",exec:function(a,b){a.insert(d.stringRepeat(b.text||"",b.times||1))},multiSelectAction:"forEach"},{name:"splitline",bindKey:e(null,"Ctrl-O"),exec:function(a){a.splitLine()},multiSelectAction:"forEach"},{name:"transposeletters",bindKey:e("Ctrl-T","Ctrl-T"),exec:function(a){a.transposeLetters()},multiSelectAction:function(a){a.transposeSelections(1)}},{name:"touppercase",bindKey:e("Ctrl-U","Ctrl-U"),exec:function(a){a.toUpperCase()},multiSelectAction:"forEach"},{name:"tolowercase",bindKey:e("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(a){a.toLowerCase()},multiSelectAction:"forEach"}]}),ace.define("ace/undomanager",["require","exports","module"],function(a,b,c){var d=function(){this.reset()};(function(){this.execute=function(a){var b=a.args[0];this.$doc=a.args[1],this.$undoStack.push(b),this.$redoStack=[]},this.undo=function(a){var b=this.$undoStack.pop(),c=null;return b&&(c=this.$doc.undoChanges(b,a),this.$redoStack.push(b)),c},this.redo=function(a){var b=this.$redoStack.pop(),c=null;return b&&(c=this.$doc.redoChanges(b,a),this.$undoStack.push(b)),c},this.reset=function(){this.$undoStack=[],this.$redoStack=[]},this.hasUndo=function(){return this.$undoStack.length>0},this.hasRedo=function(){return this.$redoStack.length>0}}).call(d.prototype),b.UndoManager=d}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/useragent","ace/config","ace/lib/net","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","ace/lib/event_emitter","ace/requirejs/text!ace/css/editor.css"],function(a,b,c){var d=a("./lib/oop"),e=a("./lib/dom"),f=a("./lib/event"),g=a("./lib/useragent"),h=a("./config"),i=a("./lib/net"),j=a("./layer/gutter").Gutter,k=a("./layer/marker").Marker,l=a("./layer/text").Text,m=a("./layer/cursor").Cursor,n=a("./scrollbar").ScrollBar,o=a("./renderloop").RenderLoop,p=a("./lib/event_emitter").EventEmitter,q=a("ace/requirejs/text!./css/editor.css");e.importCssString(q,"ace_editor");var r=function(a,b){var c=this;this.container=a,this.$keepTextAreaAtCursor=!g.isIE,e.addCssClass(a,"ace_editor"),this.setTheme(b),this.$gutter=e.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=e.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=e.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.setHighlightGutterLine(!0),this.$gutterLayer=new j(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onResize.bind(this,!0)),this.$markerBack=new k(this.content);var d=this.$textLayer=new l(this.content);this.canvas=d.element,this.$markerFront=new k(this.content),this.characterWidth=d.getCharacterWidth(),this.lineHeight=d.getLineHeight(),this.$cursorLayer=new m(this.content),this.$cursorPadding=8,this.$horizScroll=!1,this.$horizScrollAlwaysVisible=!1,this.$animatedScroll=!1,this.scrollBar=new n(a),this.scrollBar.addEventListener("scroll",function(a){c.$inScrollAnimation||c.session.setScrollTop(a.data)}),this.scrollTop=0,this.scrollLeft=0,f.addListener(this.scroller,"scroll",function(){var a=c.scroller.scrollLeft;c.scrollLeft=a,c.session.setScrollLeft(a)}),this.cursorPos={row:0,column:0},this.$textLayer.addEventListener("changeCharacterSize",function(){c.characterWidth=d.getCharacterWidth(),c.lineHeight=d.getLineHeight(),c.$updatePrintMargin(),c.onResize(!0),c.$loop.schedule(c.CHANGE_FULL)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1},this.$loop=new o(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.setPadding(4),this.$updatePrintMargin()};(function(){this.showGutter=!0,this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,d.implement(this,p),this.setSession=function(a){this.session=a,this.scroller.className="ace_scroller",this.$cursorLayer.setSession(a),this.$markerBack.setSession(a),this.$markerFront.setSession(a),this.$gutterLayer.setSession(a),this.$textLayer.setSession(a),this.$loop.schedule(this.CHANGE_FULL)},this.updateLines=function(a,b){b===undefined&&(b=Infinity),this.$changedLines?(this.$changedLines.firstRow>a&&(this.$changedLines.firstRow=a),this.$changedLines.lastRow<b&&(this.$changedLines.lastRow=b)):this.$changedLines={firstRow:a,lastRow:b},this.$loop.schedule(this.CHANGE_LINES)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(a){a?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.onResize=function(a,b,c,d){var f=this.CHANGE_SIZE,g=this.$size;if(this.resizing>2)return;this.resizing>1?this.resizing++:this.resizing=a?1:0,d||(d=e.getInnerHeight(this.container));if(a||g.height!=d)g.height=d,this.scroller.style.height=d+"px",g.scrollerHeight=this.scroller.clientHeight,this.scrollBar.setHeight(g.scrollerHeight),this.session&&(this.session.setScrollTop(this.getScrollTop()),f|=this.CHANGE_FULL);c||(c=e.getInnerWidth(this.container));if(a||this.resizing>1||g.width!=c){g.width=c;var b=this.showGutter?this.$gutter.offsetWidth:0;this.scroller.style.left=b+"px",g.scrollerWidth=Math.max(0,c-b-this.scrollBar.getWidth()),this.scroller.style.right=this.scrollBar.getWidth()+"px";if(this.session.getUseWrapMode()&&this.adjustWrapLimit()||a)f|=this.CHANGE_FULL}a?this.$renderChanges(f,!0):this.$loop.schedule(f),a&&delete this.resizing},this.adjustWrapLimit=function(){var a=this.$size.scrollerWidth-this.$padding*2,b=Math.floor(a/this.characterWidth);return this.session.adjustWrapLimit(b)},this.setAnimatedScroll=function(a){this.$animatedScroll=a},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(a){this.$textLayer.setShowInvisibles(a)&&this.$loop.schedule(this.CHANGE_TEXT)},this.getShowInvisibles=function(){return this.$textLayer.showInvisibles},this.getDisplayIndentGuides=function(){return this.$textLayer.displayIndentGuides},this.setDisplayIndentGuides=function(a){this.$textLayer.setDisplayIndentGuides(a)&&this.$loop.schedule(this.CHANGE_TEXT)},this.$showPrintMargin=!0,this.setShowPrintMargin=function(a){this.$showPrintMargin=a,this.$updatePrintMargin()},this.getShowPrintMargin=function(){return this.$showPrintMargin},this.$printMarginColumn=80,this.setPrintMarginColumn=function(a){this.$printMarginColumn=a,this.$updatePrintMargin()},this.getPrintMarginColumn=function(){return this.$printMarginColumn},this.getShowGutter=function(){return this.showGutter},this.setShowGutter=function(a){if(this.showGutter===a)return;this.$gutter.style.display=a?"block":"none",this.showGutter=a,this.onResize(!0)},this.getFadeFoldWidgets=function(){return e.hasCssClass(this.$gutter,"ace_fade-fold-widgets")},this.setFadeFoldWidgets=function(a){a?e.addCssClass(this.$gutter,"ace_fade-fold-widgets"):e.removeCssClass(this.$gutter,"ace_fade-fold-widgets")},this.$highlightGutterLine=!1,this.setHighlightGutterLine=function(a){if(this.$highlightGutterLine==a)return;this.$highlightGutterLine=a;if(!this.$gutterLineHighlight){this.$gutterLineHighlight=e.createElement("div"),this.$gutterLineHighlight.className="ace_gutter_active_line",this.$gutter.appendChild(this.$gutterLineHighlight);return}this.$gutterLineHighlight.style.display=a?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},this.getHighlightGutterLine=function(){return this.$highlightGutterLine},this.$updateGutterLineHighlight=function(){this.$gutterLineHighlight.style.top=this.$cursorLayer.$pixelPos.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=this.layerConfig.lineHeight+"px"},this.$updatePrintMargin=function(){var a;if(!this.$showPrintMargin&&!this.$printMarginEl)return;this.$printMarginEl||(a=e.createElement("div"),a.className="ace_print_margin_layer",this.$printMarginEl=e.createElement("div"),this.$printMarginEl.className="ace_print_margin",a.appendChild(this.$printMarginEl),this.content.insertBefore(a,this.$textLayer.element));var b=this.$printMarginEl.style;b.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",b.visibility=this.$showPrintMargin?"visible":"hidden"},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.content},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(!this.$keepTextAreaAtCursor)return;var a=this.$cursorLayer.$pixelPos.top,b=this.$cursorLayer.$pixelPos.left;a-=this.layerConfig.offset;if(a<0||a>this.layerConfig.height-this.lineHeight)return;var c=this.characterWidth;this.$composition&&(c+=this.textarea.scrollWidth),b-=this.scrollLeft,b>this.$size.scrollerWidth-c&&(b=this.$size.scrollerWidth-c),this.showGutter&&(b+=this.$gutterLayer.gutterWidth),this.textarea.style.height=this.lineHeight+"px",this.textarea.style.width=c+"px",this.textarea.style.left=b+"px",this.textarea.style.top=a-1+"px"},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var a=Math.floor((this.layerConfig.height+this.layerConfig.offset)/this.layerConfig.lineHeight);return this.layerConfig.firstRow-1+a},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(a){this.$padding=a,this.$textLayer.setPadding(a),this.$cursorLayer.setPadding(a),this.$markerFront.setPadding(a),this.$markerBack.setPadding(a),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.getHScrollBarAlwaysVisible=function(){return this.$horizScrollAlwaysVisible},this.setHScrollBarAlwaysVisible=function(a){this.$horizScrollAlwaysVisible!=a&&(this.$horizScrollAlwaysVisible=a,(!this.$horizScrollAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL))},this.$updateScrollBar=function(){this.scrollBar.setInnerHeight(this.layerConfig.maxHeight),this.scrollBar.setScrollTop(this.scrollTop)},this.$renderChanges=function(a,b){if(!b&&(!a||!this.session||!this.container.offsetWidth))return;(a&this.CHANGE_FULL||a&this.CHANGE_SIZE||a&this.CHANGE_TEXT||a&this.CHANGE_LINES||a&this.CHANGE_SCROLL)&&this.$computeLayerConfig();if(a&this.CHANGE_H_SCROLL){this.scroller.scrollLeft=this.scrollLeft;var c=this.scroller.scrollLeft;this.scrollLeft=c,this.session.setScrollLeft(c),this.scroller.className=this.scrollLeft==0?"ace_scroller":"ace_scroller horscroll"}if(a&this.CHANGE_FULL){this.$textLayer.checkForSizeChanges(),this.$updateScrollBar(),this.$textLayer.update(this.layerConfig),this.showGutter&&this.$gutterLayer.update(this.layerConfig),this.$markerBack.update(this.layerConfig),this.$markerFront.update(this.layerConfig),this.$cursorLayer.update(this.layerConfig),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight();return}if(a&this.CHANGE_SCROLL){this.$updateScrollBar(),a&this.CHANGE_TEXT||a&this.CHANGE_LINES?this.$textLayer.update(this.layerConfig):this.$textLayer.scrollLines(this.layerConfig),this.showGutter&&this.$gutterLayer.update(this.layerConfig),this.$markerBack.update(this.layerConfig),this.$markerFront.update(this.layerConfig),this.$cursorLayer.update(this.layerConfig),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight();return}a&this.CHANGE_TEXT?(this.$textLayer.update(this.layerConfig),this.showGutter&&this.$gutterLayer.update(this.layerConfig)):a&this.CHANGE_LINES?(this.$updateLines()||a&this.CHANGE_GUTTER&&this.showGutter)&&this.$gutterLayer.update(this.layerConfig):(a&this.CHANGE_TEXT||a&this.CHANGE_GUTTER)&&this.showGutter&&this.$gutterLayer.update(this.layerConfig),a&this.CHANGE_CURSOR&&(this.$cursorLayer.update(this.layerConfig),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),a&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(this.layerConfig),a&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(this.layerConfig),a&this.CHANGE_SIZE&&this.$updateScrollBar()},this.$computeLayerConfig=function(){var a=this.session,b=this.scrollTop%this.lineHeight,c=this.$size.scrollerHeight+this.lineHeight,d=this.$getLongestLine(),e=this.$horizScrollAlwaysVisible||this.$size.scrollerWidth-d<0,f=this.$horizScroll!==e;this.$horizScroll=e,f&&(this.scroller.style.overflowX=e?"scroll":"hidden",e||this.session.setScrollLeft(0));var g=this.session.getScreenLength()*this.lineHeight;this.session.setScrollTop(Math.max(0,Math.min(this.scrollTop,g-this.$size.scrollerHeight)));var h=Math.ceil(c/this.lineHeight)-1,i=Math.max(0,Math.round((this.scrollTop-b)/this.lineHeight)),j=i+h,k,l,m=this.lineHeight;i=a.screenToDocumentRow(i,0);var n=a.getFoldLine(i);n&&(i=n.start.row),k=a.documentToScreenRow(i,0),l=a.getRowLength(i)*m,j=Math.min(a.screenToDocumentRow(j,0),a.getLength()-1),c=this.$size.scrollerHeight+a.getRowLength(j)*m+l,b=this.scrollTop-k*m,this.layerConfig={width:d,padding:this.$padding,firstRow:i,firstRowScreen:k,lastRow:j,lineHeight:m,characterWidth:this.characterWidth,minHeight:c,maxHeight:g,offset:b,height:this.$size.scrollerHeight},this.$gutterLayer.element.style.marginTop=-b+"px",this.content.style.marginTop=-b+"px",this.content.style.width=d+2*this.$padding+"px",this.content.style.height=c+"px",f&&this.onResize(!0)},this.$updateLines=function(){var a=this.$changedLines.firstRow,b=this.$changedLines.lastRow;this.$changedLines=null;var c=this.layerConfig;if(a>c.lastRow+1)return;if(b<c.firstRow)return;if(b===Infinity){this.showGutter&&this.$gutterLayer.update(c),this.$textLayer.update(c);return}return this.$textLayer.updateLines(c,a,b),!0},this.$getLongestLine=function(){var a=this.session.getScreenWidth();return this.$textLayer.showInvisibles&&(a+=1),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(a*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(a,b){this.$gutterLayer.addGutterDecoration(a,b)},this.removeGutterDecoration=function(a,b){this.$gutterLayer.removeGutterDecoration(a,b)},this.updateBreakpoints=function(a){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(a){this.$gutterLayer.setAnnotations(a),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(a,b,c){this.scrollCursorIntoView(a,c),this.scrollCursorIntoView(b,c)},this.scrollCursorIntoView=function(a,b){if(this.$size.scrollerHeight===0)return;var c=this.$cursorLayer.getPixelPosition(a),d=c.left,e=c.top;this.scrollTop>e?(b&&(e-=b*this.$size.scrollerHeight),this.session.setScrollTop(e)):this.scrollTop+this.$size.scrollerHeight<e+this.lineHeight&&(b&&(e+=b*this.$size.scrollerHeight),this.session.setScrollTop(e+this.lineHeight-this.$size.scrollerHeight));var f=this.scrollLeft;f>d?(d<this.$padding+2*this.layerConfig.characterWidth&&(d=0),this.session.setScrollLeft(d)):f+this.$size.scrollerWidth<d+this.characterWidth&&this.session.setScrollLeft(Math.round(d+this.characterWidth-this.$size.scrollerWidth))},this.getScrollTop=function(){return this.session.getScrollTop()},this.getScrollLeft=function(){return this.session.getScrollLeft()},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(a){this.session.setScrollTop(a*this.lineHeight)},this.alignCursor=function(a,b){typeof a=="number"&&(a={row:a,column:0});var c=this.$cursorLayer.getPixelPosition(a),d=c.top-this.$size.scrollerHeight*(b||0);this.session.setScrollTop(d)},this.STEPS=8,this.$calcSteps=function(a,b){var c=0,d=this.STEPS,e=[],f=function(a,b,c){return c*(Math.pow(a-1,3)+1)+b};for(c=0;c<d;++c)e.push(f(c/this.STEPS,a,b-a));return e},this.scrollToLine=function(a,b,c,d){var e=this.$cursorLayer.getPixelPosition({row:a,column:0}),f=e.top;b&&(f-=this.$size.scrollerHeight/2);var g=this.scrollTop;this.session.setScrollTop(f),c!==!1&&this.animateScrolling(g,d)},this.animateScrolling=function(a,b){var c=this.scrollTop;if(this.$animatedScroll&&Math.abs(a-c)<1e5){var d=this,e=d.$calcSteps(a,c);this.$inScrollAnimation=!0,clearInterval(this.$timer),d.session.setScrollTop(e.shift()),this.$timer=setInterval(function(){e.length?(d.session.setScrollTop(e.shift()),d.session.$scrollTop=c):c!=null?(d.session.$scrollTop=-1,d.session.setScrollTop(c),c=null):(d.$timer=clearInterval(d.$timer),d.$inScrollAnimation=!1,b&&b())},10)}},this.scrollToY=function(a){this.scrollTop!==a&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=a)},this.scrollToX=function(a){a<0&&(a=0),this.scrollLeft!==a&&(this.scrollLeft=a),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollBy=function(a,b){b&&this.session.setScrollTop(this.session.getScrollTop()+b),a&&this.session.setScrollLeft(this.session.getScrollLeft()+a)},this.isScrollableBy=function(a,b){if(b<0&&this.session.getScrollTop()>0)return!0;if(b>0&&this.session.getScrollTop()+this.$size.scrollerHeight<this.layerConfig.maxHeight)return!0},this.pixelToScreenCoordinates=function(a,b){var c=this.scroller.getBoundingClientRect(),d=(a+this.scrollLeft-c.left-this.$padding)/this.characterWidth,e=Math.floor((b+this.scrollTop-c.top)/this.lineHeight),f=Math.round(d);return{row:e,column:f,side:d-f>0?1:-1}},this.screenToTextCoordinates=function(a,b){var c=this.scroller.getBoundingClientRect(),d=Math.round((a+this.scrollLeft-c.left-this.$padding)/this.characterWidth),e=Math.floor((b+this.scrollTop-c.top)/this.lineHeight);return this.session.screenToDocumentPosition(e,Math.max(d,0))},this.textToScreenCoordinates=function(a,b){var c=this.scroller.getBoundingClientRect(),d=this.session.documentToScreenPosition(a,b),e=this.$padding+Math.round(d.column*this.characterWidth),f=d.row*this.lineHeight;return{pageX:c.left+e-this.scrollLeft,pageY:c.top+f-this.scrollTop}},this.visualizeFocus=function(){e.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){e.removeCssClass(this.container,"ace_focus")},this.showComposition=function(a){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,e.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(a){this.$moveTextAreaToCursor()},this.hideComposition=function(){if(!this.$composition)return;e.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null},this._loadTheme=function(a,b){if(!h.get("packaged"))return b();i.loadScript(h.moduleUrl(a,"theme"),b)},this.setTheme=function(b){function h(a){e.importCssString(a.cssText,a.cssClass,c.container.ownerDocument),c.$theme&&e.removeCssClass(c.container,c.$theme),c.$theme=a?a.cssClass:null,c.$theme&&e.addCssClass(c.container,c.$theme),a&&a.isDark?e.addCssClass(c.container,"ace_dark"):e.removeCssClass(c.container,"ace_dark"),c.$size&&(c.$size.width=0,c.onResize())}var c=this;this.$themeValue=b;if(!b||typeof b=="string"){var d=b||"ace/theme/textmate",f;try{f=a(d)}catch(g){}if(f)return h(f);c._loadTheme(d,function(){a([d],function(a){if(c.$themeValue!==b)return;h(a)})})}else h(b)},this.getTheme=function(){return this.$themeValue},this.setStyle=function(b){e.addCssClass(this.container,b)},this.unsetStyle=function(b){e.removeCssClass(this.container,b)},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(r.prototype),b.VirtualRenderer=r}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(a,b,c){var d=a("../lib/dom"),e=a("../lib/oop"),f=a("../lib/event_emitter").EventEmitter,g=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_gutter-layer",a.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[]};(function(){e.implement(this,f),this.setSession=function(a){this.session=a},this.addGutterDecoration=function(a,b){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(a,b)},this.removeGutterDecoration=function(a,b){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(a,b)},this.setAnnotations=function(a){this.$annotations=[];for(var b in a)if(a.hasOwnProperty(b)){var c=a[b];if(!c)continue;var d=this.$annotations[b]={text:[]};for(var e=0;e<c.length;e++){var f=c[e],g=f.text.replace(/"/g,"&quot;").replace(/'/g,"&#8217;").replace(/</,"&lt;");d.text.indexOf(g)===-1&&d.text.push(g);var h=f.type;h=="error"?d.className=" ace_error":h=="warning"&&d.className!=" ace_error"?d.className=" ace_warning":h=="info"&&!d.className&&(d.className=" ace_info")}}},this.update=function(a){var b={className:""},c=[],e=a.firstRow,f=a.lastRow,g=this.session.getNextFoldLine(e),h=g?g.start.row:Infinity,i=this.$showFoldWidgets&&this.session.foldWidgets,j=this.session.$breakpoints,k=this.session.$decorations,l=0;for(;;){e>h&&(e=g.end.row+1,g=this.session.getNextFoldLine(e,g),h=g?g.start.row:Infinity);if(e>f)break;var m=this.$annotations[e]||b;c.push("<div class='ace_gutter-cell ",j[e]||"",k[e]||"",m.className,"' style='height:",this.session.getRowLength(e)*a.lineHeight,"px;'>",l=e+1);if(i){var n=i[e];n==null&&(n=i[e]=this.session.getFoldWidget(e)),n&&c.push("<span class='ace_fold-widget ",n,n=="start"&&e==h&&e<g.end.row?" closed":" open","'></span>")}c.push("</div>"),e++}this.element=d.setInnerHtml(this.element,c.join("")),this.element.style.height=a.minHeight+"px",this.session.$useWrapMode&&(l=this.session.getLength());var o=(""+l).length*a.characterWidth,p=this.$padding||this.$computePadding();o+=p.left+p.right,o!==this.gutterWidth&&(this.gutterWidth=o,this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._emit("changeGutterWidth",o))},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(a){a?d.addCssClass(this.element,"ace_folding-enabled"):d.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=a,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var a=d.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=parseInt(a.paddingLeft)+1,this.$padding.right=parseInt(a.paddingRight),this.$padding},this.getRegion=function(a){var b=this.$padding||this.$computePadding(),c=this.element.getBoundingClientRect();if(a.x<b.left+c.left)return"markers";if(this.$showFoldWidgets&&a.x>c.right-b.right)return"foldWidgets"}}).call(g.prototype),b.Gutter=g}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(a,b,c){var d=a("../range").Range,e=a("../lib/dom"),f=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setMarkers=function(a){this.markers=a},this.update=function(a){var a=a||this.config;if(!a)return;this.config=a;var b=[];for(var c in this.markers){var d=this.markers[c];if(!d.range){d.update(b,this,this.session,a);continue}var f=d.range.clipRows(a.firstRow,a.lastRow);if(f.isEmpty())continue;f=f.toScreenRange(this.session);if(d.renderer){var g=this.$getTop(f.start.row,a),h=Math.round(this.$padding+f.start.column*a.characterWidth);d.renderer(b,f,h,g,a)}else f.isMultiLine()?d.type=="text"?this.drawTextMarker(b,f,d.clazz,a):this.drawMultiLineMarker(b,f,d.clazz,a,d.type):this.drawSingleLineMarker(b,f,d.clazz+" start",a,null,d.type)}this.element=e.setInnerHtml(this.element,b.join(""))},this.$getTop=function(a,b){return(a-b.firstRowScreen)*b.lineHeight},this.drawTextMarker=function(a,b,c,e){var f=b.start.row,g=new d(f,b.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(a,g,c+" start",e,1,"text"),f=b.end.row,g=new d(f,0,f,b.end.column),this.drawSingleLineMarker(a,g,c,e,0,"text");for(f=b.start.row+1;f<b.end.row;f++)g.start.row=f,g.end.row=f,g.end.column=this.session.getScreenLastRowColumn(f),this.drawSingleLineMarker(a,g,c,e,1,"text")},this.drawMultiLineMarker=function(a,b,c,d,e){var f=e==="background"?0:this.$padding,g=d.lineHeight,h=this.$getTop(b.start.row,d),i=Math.round(f+b.start.column*d.characterWidth);a.push("<div class='",c," start' style='","height:",g,"px;","right:0;","top:",h,"px;","left:",i,"px;'></div>"),h=this.$getTop(b.end.row,d);var j=Math.round(b.end.column*d.characterWidth);a.push("<div class='",c,"' style='","height:",g,"px;","width:",j,"px;","top:",h,"px;","left:",f,"px;'></div>"),g=(b.end.row-b.start.row-1)*d.lineHeight;if(g<0)return;h=this.$getTop(b.start.row+1,d),a.push("<div class='",c,"' style='","height:",g,"px;","right:0;","top:",h,"px;","left:",f,"px;'></div>")},this.drawSingleLineMarker=function(a,b,c,d,e,f){var g=f==="background"?0:this.$padding,h=d.lineHeight;if(f==="background")var i=d.width;else i=Math.round((b.end.column+(e||0)-b.start.column)*d.characterWidth);var j=this.$getTop(b.start.row,d),k=Math.round(g+b.start.column*d.characterWidth);a.push("<div class='",c,"' style='","height:",h,"px;","width:",i,"px;","top:",j,"px;","left:",k,"px;'></div>")}}).call(f.prototype),b.Marker=f}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(a,b,c){var d=a("../lib/oop"),e=a("../lib/dom"),f=a("../lib/lang"),g=a("../lib/useragent"),h=a("../lib/event_emitter").EventEmitter,i=function(a){this.element=e.createElement("div"),this.element.className="ace_layer ace_text-layer",a.appendChild(this.element),this.$characterSize=this.$measureSizes()||{width:0,height:0},this.$pollSizeChanges()};(function(){d.implement(this,h),this.EOF_CHAR="¶",this.EOL_CHAR="¬",this.TAB_CHAR="→",this.SPACE_CHAR="·",this.$padding=0,this.setPadding=function(a){this.$padding=a,this.element.style.padding="0 "+a+"px"},this.getLineHeight=function(){return this.$characterSize.height||1},this.getCharacterWidth=function(){return this.$characterSize.width||1},this.checkForSizeChanges=function(){var a=this.$measureSizes();a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==a.height)&&(this.$characterSize=a,this._emit("changeCharacterSize",{data:a}))},this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges()},500)},this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1},this.$measureSizes=g.isIE||g.isOldGecko?function(){var a=1e3;if(!this.$measureNode){var b=this.$measureNode=e.createElement("div"),c=b.style;c.width=c.height="auto",c.left=c.top=-a*40+"px",c.visibility="hidden",c.position="fixed",c.overflow="visible",c.whiteSpace="nowrap",b.innerHTML=f.stringRepeat("Xy",a);if(this.element.ownerDocument.body)this.element.ownerDocument.body.appendChild(b);else{var d=this.element.parentNode;while(!e.hasCssClass(d,"ace_editor"))d=d.parentNode;d.appendChild(b)}}if(!this.element.offsetWidth)return null;var c=this.$measureNode.style,g=e.computedStyle(this.element);for(var h in this.$fontStyles)c[h]=g[h];var i={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(a*2)};return i.width==0||i.height==0?null:i}:function(){if(!this.$measureNode){var a=this.$measureNode=e.createElement("div"),b=a.style;b.width=b.height="auto",b.left=b.top="-100px",b.visibility="hidden",b.position="fixed",b.overflow="visible",b.whiteSpace="nowrap",a.innerHTML="X";var c=this.element.parentNode;while(c&&!e.hasCssClass(c,"ace_editor"))c=c.parentNode;if(!c)return this.$measureNode=null;c.appendChild(a)}var d=this.$measureNode.getBoundingClientRect(),f={height:d.height,width:d.width};return f.width==0||f.height==0?null:f},this.setSession=function(a){this.session=a,this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(a){return this.showInvisibles==a?!1:(this.showInvisibles=a,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(a){return this.displayIndentGuides==a?!1:(this.displayIndentGuides=a,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var a=this.session.getTabSize();this.tabSize=a;var b=this.$tabStrings=[0];for(var c=1;c<a+1;c++)this.showInvisibles?b.push("<span class='ace_invisible'>"+this.TAB_CHAR+Array(c).join("&#160;")+"</span>"):b.push((new Array(c+1)).join("&#160;"));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var d="ace_indent-guide",e=Array(this.tabSize+1).join("&#160;"),f=e;this.showInvisibles&&(d+=" ace_invisible",f=this.TAB_CHAR+e.substr(6)),this.$tabStrings[" "]="<span class='"+d+"'>"+e+"</span>",this.$tabStrings["	"]="<span class='"+d+"'>"+f+"</span>"}},this.updateLines=function(a,b,c){(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&this.scrollLines(a),this.config=a;var d=Math.max(b,a.firstRow),f=Math.min(c,a.lastRow),g=this.element.childNodes,h=0;for(var i=a.firstRow;i<d;i++){var j=this.session.getFoldLine(i);if(j){if(j.containsRow(d)){d=j.start.row;break}i=j.end.row}h++}var i=d,j=this.session.getNextFoldLine(i),k=j?j.start.row:Infinity;for(;;){i>k&&(i=j.end.row+1,j=this.session.getNextFoldLine(i,j),k=j?j.start.row:Infinity);if(i>f)break;var l=g[h++];if(l){var m=[];this.$renderLine(m,i,!this.$useLineGroups(),i==k?j:!1),e.setInnerHtml(l,m.join(""))}i++}},this.scrollLines=function(a){var b=this.config;this.config=a;if(!b||b.lastRow<a.firstRow)return this.update(a);if(a.lastRow<b.firstRow)return this.update(a);var c=this.element;if(b.firstRow<a.firstRow)for(var d=this.session.getFoldedRowCount(b.firstRow,a.firstRow-1);d>0;d--)c.removeChild(c.firstChild);if(b.lastRow>a.lastRow)for(var d=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);d>0;d--)c.removeChild(c.lastChild);if(a.firstRow<b.firstRow){var e=this.$renderLinesFragment(a,a.firstRow,b.firstRow-1);c.firstChild?c.insertBefore(e,c.firstChild):c.appendChild(e)}if(a.lastRow>b.lastRow){var e=this.$renderLinesFragment(a,b.lastRow+1,a.lastRow);c.appendChild(e)}},this.$renderLinesFragment=function(a,b,c){var d=this.element.ownerDocument.createDocumentFragment(),f=b,g=this.session.getNextFoldLine(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFoldLine(f,g),h=g?g.start.row:Infinity);if(f>c)break;var i=e.createElement("div"),j=[];this.$renderLine(j,f,!1,f==h?g:!1),i.innerHTML=j.join("");if(this.$useLineGroups())i.className="ace_line_group",d.appendChild(i);else{var k=i.childNodes;while(k.length)d.appendChild(k[0])}f++}return d},this.update=function(a){this.config=a;var b=[],c=a.firstRow,d=a.lastRow,f=c,g=this.session.getNextFoldLine(f),h=g?g.start.row:Infinity;for(;;){f>h&&(f=g.end.row+1,g=this.session.getNextFoldLine(f,g),h=g?g.start.row:Infinity);if(f>d)break;this.$useLineGroups()&&b.push("<div class='ace_line_group'>"),this.$renderLine(b,f,!1,f==h?g:!1),this.$useLineGroups()&&b.push("</div>"),f++}this.element=e.setInnerHtml(this.element,b.join(""))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(a,b,c,d){var e=this,f=/\t|&|<|( +)|([\x00-\x1f\x80-\xa0\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g,g=function(a,c,d,f,g){if(c)return(new Array(a.length+1)).join("&#160;");if(a=="&")return"&#38;";if(a=="<")return"&#60;";if(a=="	"){var h=e.session.getScreenTabSize(b+f);return b+=h-1,e.$tabStrings[h]}if(a==" "){var i=e.showInvisibles?"ace_cjk ace_invisible":"ace_cjk",j=e.showInvisibles?e.SPACE_CHAR:"";return b+=1,"<span class='"+i+"' style='width:"+e.config.characterWidth*2+"px'>"+j+"</span>"}return d?"<span class='ace_invisible ace_invalid'>"+e.SPACE_CHAR+"</span>":(b+=1,"<span class='ace_cjk' style='width:"+e.config.characterWidth*2+"px'>"+a+"</span>")},h=d.replace(f,g);if(!this.$textToken[c.type]){var i="ace_"+c.type.replace(/\./g," ace_"),j="";c.type=="fold"&&(j=" style='width:"+c.value.length*this.config.characterWidth+"px;' "),a.push("<span class='",i,"'",j,">",h,"</span>")}else a.push(h);return b+d.length},this.renderIndentGuide=function(a,b){var c=b.search(this.$indentGuideRe);return c<=0?b:b[0]==" "?(c-=c%this.tabSize,a.push(Array(c/this.tabSize+1).join(this.$tabStrings[" "])),b.substr(c)):b[0]=="	"?(a.push(Array(c+1).join(this.$tabStrings["	"])),b.substr(c)):b},this.$renderWrappedLine=function(a,b,c,d){var e=0,f=0,g=c[0],h=0;for(var i=0;i<b.length;i++){var j=b[i],k=j.value;if(i==0&&this.displayIndentGuides){e=k.length,k=this.renderIndentGuide(a,k);if(!k)continue;e-=k.length}if(e+k.length<g)h=this.$renderToken(a,h,j,k),e+=k.length;else{while(e+k.length>=g)h=this.$renderToken(a,h,j,k.substring(0,g-e)),k=k.substring(g-e),e=g,d||a.push("</div>","<div class='ace_line' style='height:",this.config.lineHeight,"px'>"),f++,h=0,g=c[f]||Number.MAX_VALUE;k.length!=0&&(e+=k.length,h=this.$renderToken(a,h,j,k))}}},this.$renderSimpleLine=function(a,b){var c=0,d=b[0],e=d.value;this.displayIndentGuides&&(e=this.renderIndentGuide(a,e)),e&&(c=this.$renderToken(a,c,d,e));for(var f=1;f<b.length;f++)d=b[f],e=d.value,c=this.$renderToken(a,c,d,e)},this.$renderLine=function(a,b,c,d){!d&&d!=0&&(d=this.session.getFoldLine(b));if(d)var e=this.$getFoldLineTokens(b,d);else var e=this.session.getTokens(b);c||a.push("<div class='ace_line' style='height:",this.config.lineHeight,"px'>");if(e.length){var f=this.session.getRowSplitData(b);f&&f.length?this.$renderWrappedLine(a,e,f,c):this.$renderSimpleLine(a,e)}this.showInvisibles&&(d&&(b=d.end.row),a.push("<span class='ace_invisible'>",b==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"</span>")),c||a.push("</div>")},this.$getFoldLineTokens=function(a,b){function e(a,b,c){var e=0,f=0;while(f+a[e].value.length<b){f+=a[e].value.length,e++;if(e==a.length)return}if(f!=b){var g=a[e].value.substring(b-f);g.length>c-b&&(g=g.substring(0,c-b)),d.push({type:a[e].type,value:g}),f=b+g.length,e+=1}while(f<c&&e<a.length){var g=a[e].value;g.length+f>c?d.push({type:a[e].type,value:g.substring(0,c-f)}):d.push(a[e]),f+=g.length,e+=1}}var c=this.session,d=[],f=c.getTokens(a);return b.walk(function(a,b,g,h,i){a?d.push({type:"fold",value:a}):(i&&(f=c.getTokens(b)),f.length&&e(f,h,g))},b.end.row,this.session.getLine(b.end.row).length),d},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(i.prototype),b.Text=i}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(a,b,c){var d=a("../lib/dom"),e=function(a){this.element=d.createElement("div"),this.element.className="ace_layer ace_cursor-layer",a.appendChild(this.element),this.isVisible=!1,this.cursors=[],this.cursor=this.addCursor()};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.addCursor=function(){var a=d.createElement("div"),b="ace_cursor";return this.isVisible||(b+=" ace_hidden"),this.overwrite&&(b+=" ace_overwrite"),a.className=b,this.element.appendChild(a),this.cursors.push(a),a},this.removeCursor=function(){if(this.cursors.length>1){var a=this.cursors.pop();return a.parentNode.removeChild(a),a}},this.hideCursor=function(){this.isVisible=!1;for(var a=this.cursors.length;a--;)d.addCssClass(this.cursors[a],"ace_hidden");clearInterval(this.blinkId)},this.showCursor=function(){this.isVisible=!0;for(var a=this.cursors.length;a--;)d.removeCssClass(this.cursors[a],"ace_hidden");this.element.style.visibility="",this.restartTimer()},this.restartTimer=function(){clearInterval(this.blinkId);if(!this.isVisible)return;var a=this.cursors.length==1?this.cursor:this.element;this.blinkId=setInterval(function(){a.style.visibility="hidden",setTimeout(function(){a.style.visibility=""},400)},1e3)},this.getPixelPosition=function(a,b){if(!this.config||!this.session)return{left:0,top:0};a||(a=this.session.selection.getCursor());var c=this.session.documentToScreenPosition(a),d=Math.round(this.$padding+c.column*this.config.characterWidth),e=(c.row-(b?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:d,top:e}},this.update=function(a){this.config=a;if(this.session.selectionMarkerCount>0){var b=this.session.$selectionMarkers,c=0,d,e=0;for(var c=b.length;c--;){d=b[c];var f=this.getPixelPosition(d.cursor,!0),g=(this.cursors[e++]||this.addCursor()).style;g.left=f.left+"px",g.top=f.top+"px",g.width=a.characterWidth+"px",g.height=a.lineHeight+"px"}if(e>1)while(this.cursors.length>e)this.removeCursor()}else{var f=this.getPixelPosition(null,!0),g=this.cursor.style;g.left=f.left+"px",g.top=f.top+"px",g.width=a.characterWidth+"px",g.height=a.lineHeight+"px";while(this.cursors.length>1)this.removeCursor()}var h=this.session.getOverwrite();h!=this.overwrite&&this.$setOverite(h),this.$pixelPos=f,this.restartTimer()},this.$setOverite=function(a){this.overwrite=a;for(var b=this.cursors.length;b--;)a?d.addCssClass(this.cursors[b],"ace_overwrite"):d.removeCssClass(this.cursors[b],"ace_overwrite")},this.destroy=function(){clearInterval(this.blinkId)}}).call(e.prototype),b.Cursor=e}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(a,b,c){var d=a("./lib/oop"),e=a("./lib/dom"),f=a("./lib/event"),g=a("./lib/event_emitter").EventEmitter,h=function(a){this.element=e.createElement("div"),this.element.className="ace_sb",this.inner=e.createElement("div"),this.element.appendChild(this.inner),a.appendChild(this.element),this.width=e.scrollbarWidth(a.ownerDocument),this.element.style.width=(this.width||15)+5+"px",f.addListener(this.element,"scroll",this.onScroll.bind(this))};(function(){d.implement(this,g),this.onScroll=function(){this._emit("scroll",{data:this.element.scrollTop})},this.getWidth=function(){return this.width},this.setHeight=function(a){this.element.style.height=a+"px"},this.setInnerHeight=function(a){this.inner.style.height=a+"px"},this.setScrollTop=function(a){this.element.scrollTop=a}}).call(h.prototype),b.ScrollBar=h}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(a,b,c){var d=a("./lib/event"),e=function(a,b){this.onRender=a,this.pending=!1,this.changes=0,this.window=b||window};(function(){this.schedule=function(a){this.changes=this.changes|a;if(!this.pending){this.pending=!0;var b=this;d.nextTick(function(){b.pending=!1;var a;while(a=b.changes)b.changes=0,b.onRender(a)},this.window)}}}).call(e.prototype),b.RenderLoop=e}),ace.define("ace/requirejs/text!ace/css/editor.css",[],".ace_editor {\n    position: absolute;\n    overflow: hidden;\n    font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Droid Sans Mono', 'Consolas', monospace;\n    font-size: 12px;\n}\n\n.ace_scroller {\n    position: absolute;\n    overflow: hidden;\n}\n\n.ace_content {\n    position: absolute;\n    box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n    cursor: text;\n}\n\n.ace_gutter {\n    position: absolute;\n    overflow : hidden;\n    height: 100%;\n    width: auto;\n    cursor: default;\n    z-index: 4;\n}\n\n.ace_gutter_active_line {\n    position: absolute;\n    left: 0;\n    right: 0;\n}\n\n.ace_scroller.horscroll {\n    box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\n}\n\n.ace_gutter-cell {\n    padding-left: 19px;\n    padding-right: 6px;\n    background-repeat: no-repeat;\n}\n\n.ace_gutter-cell.ace_error {\n    background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUM2OEZDQTQ4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUM2OEZDQTU4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzY4RkNBMjhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQzY4RkNBMzhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkgXxbAAAAJbSURBVHjapFNNaBNBFH4zs5vdZLP5sQmNpT82QY209heh1ioWisaDRcSKF0WKJ0GQnrzrxasHsR6EnlrwD0TagxJabaVEpFYxLWlLSS822tr87m66ccfd2GKyVhA6MMybgfe97/vmPUQphd0sZjto9XIn9OOsvlu2nkqRzVU+6vvlzPf8W6bk8dxQ0NPbxAALgCgg2JkaQuhzQau/El0zbmUA7U0Es8v2CiYmKQJHGO1QICCLoqilMhkmurDAyapKgqItezi/USRdJqEYY4D5jCy03ht2yMkkvL91jTTX10qzyyu2hruPRN7jgbH+EOsXcMLgYiThEgAMhABW85oqy1DXdRIdvP1AHJ2acQXvDIrVHcdQNrEKNYSVMSZGMjEzIIAwDXIo+6G/FxcGnzkC3T2oMhLjre49sBB+RRcHLqdafK6sYdE/GGBwU1VpFNj0aN8pJbe+BkZyevUrvLl6Xmm0W9IuTc0DxrDNAJd5oEvI/KRsNC3bQyNjPO9yQ1YHcfj2QvfQc/5TUhJTBc2iM0U7AWDQtc1nJHvD/cfO2s7jaGkiTEfa/Ep8coLu7zmNmh8+dc5lZDuUeFAGUNA/OY6JVaypQ0vjr7XYjUvJM37vt+j1vuTK5DgVfVUoTjVe+y3/LxMxY2GgU+CSLy4cpfsYorRXuXIOi0Vt40h67uZFTdIo6nLaZcwUJWAzwNS0tBnqqKzQDnjdG/iPyZxo46HaKUpbvYkj8qYRTZsBhge+JHhZyh0x9b95JqjVJkT084kZIPwu/mPWqPgfQ5jXh2+92Ay7HedfAgwA6KDWafb4w3cAAAAASUVORK5CYII=\");\n    background-repeat: no-repeat;\n    background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning {\n    background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUM2OEZDQTg4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUM2OEZDQTk4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzY4RkNBNjhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQzY4RkNBNzhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pgd7PfIAAAGmSURBVHjaYvr//z8DJZiJgUIANoCRkREb9gLiSVAaQx4OQM7AAkwd7XU2/v++/rOttdYGEB9dASEvOMydGKfH8Gv/p4XTkvRBfLxeQAP+1cUhXopyvzhP7P/IoSj7g7Mw09cNKO6J1QQ0L4gICPIv/veg/8W+JdFvQNLHVsW9/nmn9zk7B+cCkDwhL7gt6knSZnx9/LuCEOcvkIAMP+cvto9nfqyZmmUAksfnBUtbM60gX/3/kgyv3/xSFOL5DZT+L8vP+Yfh5cvfPvp/xUHyQHXGyAYwgpwBjZYFT3Y1OEl/OfCH4ffv3wzc4iwMvNIsDJ+f/mH4+vIPAxsb631WW0Yln6ZpQLXdMK/DXGDflh+sIv37EivD5x//Gb7+YWT4y86sl7BCCkSD+Z++/1dkvsFRl+HnD1Rvje4F8whjMXmGj58YGf5zsDMwcnAwfPvKcml62DsQDeaDxN+/Y0qwlpEHqrdB94IRNIDUgfgfKJChGK4OikEW3gTiXUB950ASLFAF54AC94A0G9QAfOnmF9DCDzABFqS08IHYDIScdijOjQABBgC+/9awBH96jwAAAABJRU5ErkJggg==\");\n    background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info {\n    background-image: url(\"data:image/gif;base64,R0lGODlhEAAQAMQAAAAAAEFBQVJSUl5eXmRkZGtra39/f4WFhYmJiZGRkaampry8vMPDw8zMzNXV1dzc3OTk5Orq6vDw8P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABQALAAAAAAQABAAAAUuICWOZGmeaBml5XGwFCQSBGyXRSAwtqQIiRuiwIM5BoYVbEFIyGCQoeJGrVptIQA7\");\n    background-position: 2px center;\n}\n.ace_dark .ace_gutter-cell.ace_info {\n    background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGRTk5MTVGREIxNDkxMUUxOTc5Q0FFREQyMTNGMjBFQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGRTk5MTVGRUIxNDkxMUUxOTc5Q0FFREQyMTNGMjBFQyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZFOTkxNUZCQjE0OTExRTE5NzlDQUVERDIxM0YyMEVDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZFOTkxNUZDQjE0OTExRTE5NzlDQUVERDIxM0YyMEVDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+SIDkjAAAAJ1JREFUeNpi/P//PwMlgImBQkB7A6qrq/+DMC55FkIGKCoq4pVnpFkgTp069f/+/fv/r1u37r+tre1/kg0A+ptn9uzZYLaRkRHpLvjw4cNXWVlZhufPnzOcO3eOdAO0tbVPAjHDmzdvGA4fPsxIsgGSkpJmv379Ynj37h2DjIyMCMkG3LhxQ/T27dsMampqDHZ2dq/pH41DxwCAAAMAFdc68dUsFZgAAAAASUVORK5CYII=\");\n}\n\n.ace_editor .ace_sb {\n    position: absolute;\n    overflow-x: hidden;\n    overflow-y: scroll;\n    right: 0;\n}\n\n.ace_editor .ace_sb div {\n    position: absolute;\n    width: 1px;\n    left: 0;\n}\n\n.ace_editor .ace_print_margin_layer {\n    z-index: 0;\n    position: absolute;\n    overflow: hidden;\n    margin: 0;\n    left: 0;\n    height: 100%;\n    width: 100%;\n}\n\n.ace_editor .ace_print_margin {\n    position: absolute;\n    height: 100%;\n}\n\n.ace_editor > textarea {\n    position: absolute;\n    z-index: 0;\n    width: 0.5em;\n    height: 1em;\n    opacity: 0;\n    background: transparent;\n    appearance: none;\n    -moz-appearance: none;\n    border: none;\n    resize: none;\n    outline: none;\n    overflow: hidden;\n}\n\n.ace_editor > textarea.ace_composition {\n    background: #fff;\n    color: #000;\n    z-index: 1000;\n    opacity: 1;\n    border: solid lightgray 1px;\n    margin: -1px\n}\n\n.ace_layer {\n    z-index: 1;\n    position: absolute;\n    overflow: hidden;\n    white-space: nowrap;\n    height: 100%;\n    width: 100%;\n    box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n    /* setting pointer-events: auto; on node under the mouse, which changes\n        during scroll, will break mouse wheel scrolling in Safari */\n    pointer-events: none;\n}\n\n.ace_gutter .ace_layer {\n    position: relative;\n    width: auto;\n    text-align: right;\n    pointer-events: auto;\n}\n\n.ace_text-layer {\n    color: black;\n    font: inherit !important;\n}\n\n.ace_cjk {\n    display: inline-block;\n    text-align: center;\n}\n\n.ace_cursor-layer {\n    z-index: 4;\n}\n\n.ace_cursor {\n    z-index: 4;\n    position: absolute;\n}\n\n.ace_cursor.ace_hidden {\n    opacity: 0.2;\n}\n\n.ace_editor.multiselect .ace_cursor {\n    border-left-width: 1px;\n}\n\n.ace_line {\n    white-space: nowrap;\n}\n\n.ace_marker-layer .ace_step {\n    position: absolute;\n    z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n    position: absolute;\n    z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n    position: absolute;\n    z-index: 6;\n}\n\n.ace_marker-layer .ace_active_line {\n    position: absolute;\n    z-index: 2;\n}\n\n.ace_marker-layer .ace_selected_word {\n    position: absolute;\n    z-index: 4;\n    box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n    box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n\n    display: inline-block;\n    height: 11px;\n    margin-top: -2px;\n    vertical-align: middle;\n\n    background-image:\n        url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),\n        url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%3AIDAT8%11c%FC%FF%FF%7F%18%03%1A%60%01%F2%3F%A0%891%80%04%FF%11-%F8%17%9BJ%E2%05%B1ZD%81v%26t%E7%80%F8%A3%82h%A12%1A%20%A3%01%02%0F%01%BA%25%06%00%19%C0%0D%AEF%D5%3ES%00%00%00%00IEND%AEB%60%82\");\n    background-repeat: no-repeat, repeat-x;\n    background-position: center center, top left;\n    color: transparent;\n\n    border: 1px solid black;\n    -moz-border-radius: 2px;\n    -webkit-border-radius: 2px;\n    border-radius: 2px;\n\n    cursor: pointer;\n    pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n    background-image:\n        url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),\n        url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%003IDAT8%11c%FC%FF%FF%7F%3E%03%1A%60%01%F2%3F%A3%891%80%04%FFQ%26%F8w%C0%B43%A1%DB%0C%E2%8F%0A%A2%85%CAh%80%8C%06%08%3C%04%E8%96%18%00%A3S%0D%CD%CF%D8%C1%9D%00%00%00%00IEND%AEB%60%82\");\n    background-repeat: no-repeat, repeat-x;\n    background-position: center center, top left;\n}\n\n.ace_dragging .ace_content {\n    cursor: move;\n}\n\n.ace_gutter_tooltip {\n    background-color: #FFFFD5;\n    border: 1px solid gray;\n    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);\n    color: black;\n    display: inline-block;\n    padding: 4px;\n    position: absolute;\n    z-index: 300;\n    box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n    cursor: default;\n}\n\n.ace_folding-enabled > .ace_gutter-cell {\n    padding-right: 13px;\n}\n\n.ace_fold-widget {\n    box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n\n    margin: 0 -12px 0 1px;\n    display: inline-block;\n    height: 100%;\n    width: 11px;\n    vertical-align: bottom;\n\n    background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAe%8A%B1%0D%000%0C%C2%F2%2CK%96%BC%D0%8F9%81%88H%E9%D0%0E%96%C0%10%92%3E%02%80%5E%82%E4%A9*-%EEsw%C8%CC%11%EE%96w%D8%DC%E9*Eh%0C%151(%00%00%00%00IEND%AEB%60%82\");\n    background-repeat: no-repeat;\n    background-position: center;\n\n    border-radius: 3px;\n    \n    border: 1px solid transparent;\n}\n\n.ace_fold-widget.end {\n    background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAm%C7%C1%09%000%08C%D1%8C%ECE%C8E(%8E%EC%02)%1EZJ%F1%C1'%04%07I%E1%E5%EE%CAL%F5%A2%99%99%22%E2%D6%1FU%B5%FE0%D9x%A7%26Wz5%0E%D5%00%00%00%00IEND%AEB%60%82\");\n}\n\n.ace_fold-widget.closed {\n    background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%03%00%00%00%06%08%06%00%00%00%06%E5%24%0C%00%00%009IDATx%DA5%CA%C1%09%000%08%03%C0%AC*(%3E%04%C1%0D%BA%B1%23%A4Uh%E0%20%81%C0%CC%F8%82%81%AA%A2%AArGfr%88%08%11%11%1C%DD%7D%E0%EE%5B%F6%F6%CB%B8%05Q%2F%E9tai%D9%00%00%00%00IEND%AEB%60%82\");\n}\n\n.ace_fold-widget:hover {\n    border: 1px solid rgba(0, 0, 0, 0.3);\n    background-color: rgba(255, 255, 255, 0.2);\n    -moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n    -webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n    box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n}\n\n.ace_fold-widget:active {\n    border: 1px solid rgba(0, 0, 0, 0.4);\n    background-color: rgba(0, 0, 0, 0.05);\n    -moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n    -webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n    box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n/**\n * Dark version for fold widgets\n */\n.ace_dark .ace_fold-widget {\n    background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\");\n}\n.ace_dark .ace_fold-widget.end {\n    background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\");\n}\n.ace_dark .ace_fold-widget.closed {\n    background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\");\n}\n.ace_dark .ace_fold-widget:hover {\n    box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n    background-color: rgba(255, 255, 255, 0.1);\n}\n.ace_dark .ace_fold-widget:active {\n    -moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n    -webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n    box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n}\n    \n    \n    \n.ace_fold-widget.invalid {\n    background-color: #FFB4B4;\n    border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n       -moz-transition: opacity 0.4s ease 0.05s;\n    -webkit-transition: opacity 0.4s ease 0.05s;\n         -o-transition: opacity 0.4s ease 0.05s;\n        -ms-transition: opacity 0.4s ease 0.05s;\n            transition: opacity 0.4s ease 0.05s;\n    opacity: 0;\n}\n\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n       -moz-transition: opacity 0.05s ease 0.05s;\n    -webkit-transition: opacity 0.05s ease 0.05s;\n         -o-transition: opacity 0.05s ease 0.05s;\n        -ms-transition: opacity 0.05s ease 0.05s;\n            transition: opacity 0.05s ease 0.05s;\n    opacity:1;\n}\n"),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor"],function(a,b,c){function l(a,b,c){return k.$options.wrap=!0,k.$options.needle=b,k.$options.backwards=c==-1,k.find(a)}function o(a,b){return a.row==b.row&&a.column==b.column}function p(a){a.$onAddRange=a.$onAddRange.bind(a),a.$onRemoveRange=a.$onRemoveRange.bind(a),a.$onMultiSelect=a.$onMultiSelect.bind(a),a.$onSingleSelect=a.$onSingleSelect.bind(a),b.onSessionChange.call(a,a),a.on("changeSession",b.onSessionChange.bind(a)),a.on("mousedown",g),a.commands.addCommands(i.defaultCommands),q(a)}function q(a){function e(){c&&(d.style.cursor="",c=!1)}var b=a.textInput.getElement(),c=!1,d=a.renderer.content;h.addListener(b,"keydown",function(a){a.keyCode==18&&!(a.ctrlKey||a.shiftKey||a.metaKey)?c||(d.style.cursor="crosshair",c=!0):c&&(d.style.cursor="")}),h.addListener(b,"keyup",e),h.addListener(b,"blur",e)}var d=a("./range_list").RangeList,e=a("./range").Range,f=a("./selection").Selection,g=a("./mouse/multi_select_handler").onMouseDown,h=a("./lib/event"),i=a("./commands/multi_select_commands");b.commands=i.defaultCommands.concat(i.multiSelectCommands);var j=a("./search").Search,k=new j,m=a("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(m.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(a,b){if(!a)return;if(!this.inMultiSelectMode&&this.rangeCount==0){var c=this.toOrientedRange();if(a.intersects(c))return b||this.fromOrientedRange(a);this.rangeList.add(c),this.$onAddRange(c)}a.cursor||(a.cursor=a.end);var d=this.rangeList.add(a);return this.$onAddRange(a),d.length&&this.$onRemoveRange(d),this.rangeCount>1&&!this.inMultiSelectMode&&(this._emit("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),b||this.fromOrientedRange(a)},this.toSingleRange=function(a){a=a||this.ranges[0];var b=this.rangeList.removeAll();b.length&&this.$onRemoveRange(b),a&&this.fromOrientedRange(a)},this.substractPoint=function(a){var b=this.rangeList.substractPoint(a);if(b)return this.$onRemoveRange(b),b[0]},this.mergeOverlappingRanges=function(){var a=this.rangeList.merge();a.length?this.$onRemoveRange(a):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(a){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(a),this._emit("addRange",{range:a})},this.$onRemoveRange=function(a){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var b=this.rangeList.ranges.pop();a.push(b),this.rangeCount=0}for(var c=a.length;c--;){var d=this.ranges.indexOf(a[c]);this.ranges.splice(d,1)}this._emit("removeRange",{ranges:a}),this.rangeCount==0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._emit("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),b=b||this.ranges[0],b&&!b.isEqual(this.getRange())&&this.fromOrientedRange(b)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new d,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeList.ranges.concat()},this.splitIntoLines=function(){if(this.rangeCount>1){var a=this.rangeList.ranges,b=a[a.length-1],c=e.fromPoints(a[0].start,b.end);this.toSingleRange(),this.setSelectionRange(c,b.cursor==b.start)}else{var c=this.getRange(),d=c.start.row,f=c.end.row;if(d==f)return;var g=[],h=this.getLineRange(d,!0);h.start.column=c.start.column,g.push(h);for(var i=d+1;i<f;i++)g.push(this.getLineRange(i,!0));h=this.getLineRange(f,!0),h.end.column=c.end.column,g.push(h),g.forEach(this.addRange,this)}},this.toggleBlockSelection=function(){if(this.rangeCount>1){var a=this.rangeList.ranges,b=a[a.length-1],c=e.fromPoints(a[0].start,b.end);this.toSingleRange(),this.setSelectionRange(c,b.cursor==b.start)}else{var d=this.session.documentToScreenPosition(this.selectionLead),f=this.session.documentToScreenPosition(this.selectionAnchor),g=this.rectangularRangeBlock(d,f);g.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(a,b,c){var d=[],f=a.column<b.column;if(f)var g=a.column,h=b.column;else var g=b.column,h=a.column;var i=a.row<b.row;if(i)var j=a.row,k=b.row;else var j=b.row,k=a.row;g<0&&(g=0),j<0&&(j=0),j==k&&(c=!0);for(var l=j;l<=k;l++){var m=e.fromPoints(this.session.screenToDocumentPosition(l,g),this.session.screenToDocumentPosition(l,h));if(m.isEmpty()){if(n&&o(m.end,n))break;var n=m.end}m.cursor=f?m.start:m.end,d.push(m)}i&&d.reverse();if(!c){var p=d.length-1;while(d[p].isEmpty()&&p>0)p--;if(p>0){var q=0;while(d[q].isEmpty())q++}for(var r=p;r>=q;r--)d[r].isEmpty()&&d.splice(r,1)}return d}}.call(f.prototype);var n=a("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(a){a.cursor||(a.cursor=a.end);var b=this.getSelectionStyle();return a.marker=this.session.addMarker(a,"ace_selection",b),this.session.$selectionMarkers.push(a),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,a},this.removeSelectionMarker=function(a){if(!a.marker)return;this.session.removeMarker(a.marker);var b=this.session.$selectionMarkers.indexOf(a);b!=-1&&this.session.$selectionMarkers.splice(b,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(a){var b=this.session.$selectionMarkers;for(var c=a.length;c--;){var d=a[c];if(!d.marker)continue;this.session.removeMarker(d.marker);var e=b.indexOf(d);e!=-1&&b.splice(e,1)}this.session.selectionMarkerCount=b.length},this.$onAddRange=function(a){this.addSelectionMarker(a.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(a){this.removeSelectionMarkers(a.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(a){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("multiselect"),this.keyBinding.addKeyboardHandler(i.keyboardHandler),this.commands.on("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(a){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("multiselect"),this.keyBinding.removeKeyboardHandler(i.keyboardHandler),this.commands.removeEventListener("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelectExec=function(a){var b=a.command,c=a.editor;if(!c.multiSelect)return;b.multiSelectAction?b.multiSelectAction=="forEach"?c.forEachSelection(b,a.args):b.multiSelectAction=="single"?(c.exitMultiSelectMode(),b.exec(c,a.args||{})):b.multiSelectAction(c,a.args||{}):(b.exec(c,a.args||{}),c.multiSelect.addRange(c.multiSelect.toOrientedRange()),c.multiSelect.mergeOverlappingRanges()),a.preventDefault()},this.forEachSelection=function(a,b){if(this.inVirtualSelectionMode)return;var c=this.session,d=this.selection,e=d.rangeList,g=d._eventRegistry;d._eventRegistry={};var h=new f(c);this.inVirtualSelectionMode=!0;for(var i=e.ranges.length;i--;)h.fromOrientedRange(e.ranges[i]),this.selection=c.selection=h,a.exec(this,b||{}),h.toOrientedRange(e.ranges[i]);h.detach(),this.selection=c.selection=d,this.inVirtualSelectionMode=!1,d._eventRegistry=g,d.mergeOverlappingRanges(),this.onCursorChange(),this.onSelectionChange()},this.exitMultiSelectMode=function(){if(this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getCopyText=function(){var a="";if(this.inMultiSelectMode){var b=this.multiSelect.rangeList.ranges;a=[];for(var c=0;c<b.length;c++)a.push(this.session.getTextRange(b[c]));a=a.join(this.session.getDocument().getNewLineCharacter())}else this.selection.isEmpty()||(a=this.session.getTextRange(this.getSelectionRange()));return a},this.onPaste=function(a){if(this.$readOnly)return;this._emit("paste",a);if(!this.inMultiSelectMode)return this.insert(a);var b=a.split(/\r\n|\r|\n/),c=this.selection.rangeList.ranges;if(b.length>c.length||b.length<=2||!b[1])return this.commands.exec("insertstring",this,a);for(var d=c.length;d--;){var e=c[d];e.isEmpty()||this.session.remove(e),this.session.insert(e.start,b[d])}},this.findAll=function(a,b,c){b=b||{},b.needle=a||b.needle,this.$search.set(b);var d=this.$search.findAll(this.session);if(!d.length)return 0;this.$blockScrolling+=1;var e=this.multiSelect;c||e.toSingleRange(d[0]);for(var f=d.length;f--;)e.addRange(d[f],!0);return this.$blockScrolling-=1,d.length},this.selectMoreLines=function(a,b){var c=this.selection.toOrientedRange(),d=c.cursor==c.end,f=this.session.documentToScreenPosition(c.cursor);this.selection.$desiredColumn&&(f.column=this.selection.$desiredColumn);var g=this.session.screenToDocumentPosition(f.row+a,f.column);if(!c.isEmpty())var h=this.session.documentToScreenPosition(d?c.end:c.start),i=this.session.screenToDocumentPosition(h.row+a,h.column);else var i=g;if(d){var j=e.fromPoints(g,i);j.cursor=j.start}else{var j=e.fromPoints(i,g);j.cursor=j.end}j.desiredColumn=f.column;if(!this.selection.inMultiSelectMode)this.selection.addRange(c);else if(b)var k=c.cursor;this.selection.addRange(j),k&&this.selection.substractPoint(k)},this.transposeSelections=function(a){var b=this.session,c=b.multiSelect,d=c.ranges;for(var e=d.length;e--;){var f=d[e];if(f.isEmpty()){var g=b.getWordRange(f.start.row,f.start.column);f.start.row=g.start.row,f.start.column=g.start.column,f.end.row=g.end.row,f.end.column=g.end.column}}c.mergeOverlappingRanges();var h=[];for(var e=d.length;e--;){var f=d[e];h.unshift(b.getTextRange(f))}a<0?h.unshift(h.pop()):h.push(h.shift());for(var e=d.length;e--;){var f=d[e],g=f.clone();b.replace(f,h[e]),f.start.row=g.start.row,f.start.column=g.start.column}},this.selectMore=function(a,b){var c=this.session,d=c.multiSelect,e=d.toOrientedRange();if(e.isEmpty()){var e=c.getWordRange(e.start.row,e.start.column);e.cursor=e.end,this.multiSelect.addRange(e)}var f=c.getTextRange(e),g=l(c,f,a);g&&(g.cursor=a==-1?g.start:g.end,this.multiSelect.addRange(g)),b&&this.multiSelect.substractPoint(e.cursor)}}).call(n.prototype),b.onSessionChange=function(a){var b=a.session;b.multiSelect||(b.$selectionMarkers=[],b.selection.$initRangeList(),b.multiSelect=b.selection),this.multiSelect=b.multiSelect;var c=a.oldSession;c&&(c.multiSelect&&c.multiSelect.editor==this&&(c.multiSelect.editor=null),b.multiSelect.removeEventListener("addRange",this.$onAddRange),b.multiSelect.removeEventListener("removeRange",this.$onRemoveRange),b.multiSelect.removeEventListener("multiSelect",this.$onMultiSelect),b.multiSelect.removeEventListener("singleSelect",this.$onSingleSelect)),b.multiSelect.on("addRange",this.$onAddRange),b.multiSelect.on("removeRange",this.$onRemoveRange),b.multiSelect.on("multiSelect",this.$onMultiSelect),b.multiSelect.on("singleSelect",this.$onSingleSelect),this.inMultiSelectMode!=b.selection.inMultiSelectMode&&(b.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},b.MultiSelect=p}),ace.define("ace/range_list",["require","exports","module"],function(a,b,c){var d=function(){this.ranges=[]};(function(){this.comparePoints=function(a,b){return a.row-b.row||a.column-b.column},this.pointIndex=function(a,b){var c=this.ranges;for(var d=b||0;d<c.length;d++){var e=c[d],f=this.comparePoints(a,e.end);if(f>0)continue;return f==0?d:(f=this.comparePoints(a,e.start),f>=0?d:-d-1)}return-d-1},this.add=function(a){var b=this.pointIndex(a.start);b<0&&(b=-b-1);var c=this.pointIndex(a.end,b);return c<0?c=-c-1:c++,this.ranges.splice(b,c-b,a)},this.addList=function(a){var b=[];for(var c=a.length;c--;)b.push.call(b,this.add(a[c]));return b},this.substractPoint=function(a){var b=this.pointIndex(a);if(b>=0)return this.ranges.splice(b,1)},this.merge=function(){var a=[],b=this.ranges,c=b[0],d;for(var e=1;e<b.length;e++){d=c,c=b[e];var f=this.comparePoints(d.end,c.start);if(f<0)continue;if(f==0&&!d.isEmpty()&&!c.isEmpty())continue;this.comparePoints(d.end,c.end)<0&&(d.end.row=c.end.row,d.end.column=c.end.column),b.splice(e,1),a.push(c),c=d,e--}return a},this.contains=function(a,b){return this.pointIndex({row:a,column:b})>=0},this.containsPoint=function(a){return this.pointIndex(a)>=0},this.rangeAtPoint=function(a){var b=this.pointIndex(a);if(b>=0)return this.ranges[b]},this.clipRows=function(a,b){var c=this.ranges;if(c[0].start.row>b||c[c.length-1].start.row<a)return[];var d=this.pointIndex({row:a,column:0});d<0&&(d=-d-1);var e=this.pointIndex({row:b,column:0},d);e<0&&(e=-e-1);var f=[];for(var g=d;g<e;g++)f.push(c[g]);return f},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(a){this.session&&this.detach(),this.session=a,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},this.detach=function(){if(!this.session)return;this.session.removeListener("change",this.onChange),this.session=null},this.$onChange=function(a){var b=a.data.range;if(a.data.action[0]=="i")var c=b.start,d=b.end;else var d=b.start,c=b.end;var e=c.row,f=d.row,g=f-e,h=-c.column+d.column,i=this.ranges;for(var j=0,k=i.length;j<k;j++){var l=i[j];if(l.end.row<e)continue;if(l.start.row>e)break;l.start.row==e&&l.start.column>=c.column&&(l.start.column+=h,l.start.row+=g),l.end.row==e&&l.end.column>=c.column&&(l.end.column+=h,l.end.row+=g)}if(g!=0&&j<k)for(;j<k;j++){var l=i[j];l.start.row+=g,l.end.row+=g}}}).call(d.prototype),b.RangeList=d}),ace.define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event"],function(a,b,c){function e(a,b){return a.row==b.row&&a.column==b.column}function f(a){var b=a.domEvent,c=b.altKey,f=b.shiftKey,g=a.getAccelKey(),h=a.getButton();if(a.editor.inMultiSelectMode&&h==2){a.editor.textInput.onContextMenu(a.domEvent);return}if(!g&&!c){h==0&&a.editor.inMultiSelectMode&&a.editor.exitMultiSelectMode();return}var i=a.editor,j=i.selection,k=i.inMultiSelectMode,l=a.getDocumentPosition(),m=j.getCursor(),n=a.inSelection()||j.isEmpty()&&e(l,m),o=a.x,p=a.y,q=function(a){o=a.clientX,p=a.clientY},r=function(){var a=i.renderer.pixelToScreenCoordinates(o,p),b=s.screenToDocumentPosition(a.row,a.column);if(e(u,a)&&e(b,j.selectionLead))return;u=a,i.selection.moveCursorToPosition(b),i.selection.clearSelection(),i.renderer.scrollCursorIntoView(),i.removeSelectionMarkers(x),x=j.rectangularRangeBlock(u,t),x.forEach(i.addSelectionMarker,i),i.updateSelectionMarkers()},s=i.session,t=i.renderer.pixelToScreenCoordinates(o,p),u=t;if(g&&!f&&!c&&h==0){if(!k&&n)return;if(!k){var v=j.toOrientedRange();i.addSelectionMarker(v)}var w=j.rangeList.rangeAtPoint(l);d.capture(i.container,function(){},function(){var a=j.toOrientedRange();w&&a.isEmpty()&&e(w.cursor,a.cursor)?j.substractPoint(a.cursor):(v&&(i.removeSelectionMarker(v),j.addRange(v)),j.addRange(a))})}else if(!f&&c&&h==0){a.stop(),k&&!g?j.toSingleRange():!k&&g&&j.addRange(),j.moveCursorToPosition(l),j.clearSelection();var x=[],y=function(a){clearInterval(A),i.removeSelectionMarkers(x);for(var b=0;b<x.length;b++)j.addRange(x[b])},z=r;d.capture(i.container,q,y);var A=setInterval(function(){z()},20);return a.preventDefault()}}var d=a("../lib/event");b.onMouseDown=f}),ace.define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],function(a,b,c){b.defaultCommands=[{name:"addCursorAbove",exec:function(a){a.selectMoreLines(-1)},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},readonly:!0},{name:"addCursorBelow",exec:function(a){a.selectMoreLines(1)},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},readonly:!0},{name:"addCursorAboveSkipCurrent",exec:function(a){a.selectMoreLines(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},readonly:!0},{name:"addCursorBelowSkipCurrent",exec:function(a){a.selectMoreLines(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},readonly:!0},{name:"selectMoreBefore",exec:function(a){a.selectMore(-1)},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},readonly:!0},{name:"selectMoreAfter",exec:function(a){a.selectMore(1)},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},readonly:!0},{name:"selectNextBefore",exec:function(a){a.selectMore(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},readonly:!0},{name:"selectNextAfter",exec:function(a){a.selectMore(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},readonly:!0},{name:"splitIntoLines",exec:function(a){a.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Shift-L",mac:"Ctrl-Shift-L"},readonly:!0}],b.multiSelectCommands=[{name:"singleSelection",bindKey:"esc",exec:function(a){a.exitMultiSelectMode()},readonly:!0,isAvailable:function(a){return a&&a.inMultiSelectMode}}];var d=a("../keyboard/hash_handler").HashHandler;b.keyboardHandler=new d(b.multiSelectCommands)}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/config"],function(a,b,c){var d=a("../lib/oop"),e=a("../lib/event_emitter").EventEmitter,f=a("../config"),g=function(b,c,d){this.changeListener=this.changeListener.bind(this);if(f.get("packaged"))this.$worker=new Worker(f.moduleUrl(c,"worker"));else{var e;typeof a.supports!="undefined"&&a.supports.indexOf("ucjs2-pinf-0")>=0?e=a.nameToUrl("ace/worker/worker_sourcemint"):(a.nameToUrl&&!a.toUrl&&(a.toUrl=a.nameToUrl),e=this.$normalizePath(a.toUrl("ace/worker/worker",null,"_"))),this.$worker=new Worker(e);var g={};for(var h=0;h<b.length;h++){var i=b[h],j=this.$normalizePath(a.toUrl(i,null,"_").replace(/.js(\?.*)?$/,""));g[i]=j}}this.$worker.postMessage({init:!0,tlns:g,module:c,classname:d}),this.callbackId=1,this.callbacks={};var k=this;this.$worker.onerror=function(a){throw window.console&&console.log&&console.log(a),a},this.$worker.onmessage=function(a){var b=a.data;switch(b.type){case"log":window.console&&console.log&&console.log(b.data);break;case"event":k._emit(b.name,{data:b.data});break;case"call":var c=k.callbacks[b.id];c&&(c(b.data),delete k.callbacks[b.id])}}};(function(){d.implement(this,e),this.$normalizePath=function(a){return location.host?(a=a.replace(/^[a-z]+:\/\/[^\/]+/,""),a=location.protocol+"//"+location.host+(a.charAt(0)=="/"?"":location.pathname.replace(/\/[^\/]*$/,""))+"/"+a.replace(/^[\/]+/,""),a):a},this.terminate=function(){this._emit("terminate",{}),this.$worker.terminate(),this.$worker=null,this.$doc.removeEventListener("change",this.changeListener),this.$doc=null},this.send=function(a,b){this.$worker.postMessage({command:a,args:b})},this.call=function(a,b,c){if(c){var d=this.callbackId++;this.callbacks[d]=c,b.push(d)}this.send(a,b)},this.emit=function(a,b){try{this.$worker.postMessage({event:a,data:{data:b.data}})}catch(c){}},this.attachToDocument=function(a){this.$doc&&this.terminate(),this.$doc=a,this.call("setValue",[a.getValue()]),a.on("change",this.changeListener)},this.changeListener=function(a){a.range={start:a.data.range.start,end:a.data.range.end},this.emit("change",a)}}).call(g.prototype),b.WorkerClient=g}),ace.define("ace/keyboard/state_handler",["require","exports","module"],function(a,b,c){function e(a){this.keymapping=this.$buildKeymappingRegex(a)}var d=!1;e.prototype={$buildKeymappingRegex:function(a){for(var b in a)this.$buildBindingsRegex(a[b]);return a},$buildBindingsRegex:function(a){a.forEach(function(a){a.key?a.key=new RegExp("^"+a.key+"$"):Array.isArray(a.regex)?("key"in a||(a.key=new RegExp("^"+a.regex[1]+"$")),a.regex=new RegExp(a.regex.join("")+"$")):a.regex&&(a.regex=new RegExp(a.regex+"$"))})},$composeBuffer:function(a,b,c,d){if(a.state==null||a.buffer==null)a.state="start",a.buffer="";var e=[];b&1&&e.push("ctrl"),b&8&&e.push("command"),b&2&&e.push("option"),b&4&&e.push("shift"),c&&e.push(c);var f=e.join("-"),g=a.buffer+f;b!=2&&(a.buffer=g);var h={bufferToUse:g,symbolicName:f};return d&&(h.keyIdentifier=d.keyIdentifier),h},$find:function(a,b,c,e,f,g){var h={};return this.keymapping[a.state].some(function(i){var j;if(i.key&&!i.key.test(c))return!1;if(i.regex&&!(j=i.regex.exec(b)))return!1;if(i.match&&!i.match(b,e,f,c,g))return!1;if(i.disallowMatches)for(var k=0;k<i.disallowMatches.length;k++)if(!!j[i.disallowMatches[k]])return!1;if(i.exec){h.command=i.exec;if(i.params){var l;h.args={},i.params.forEach(function(a){a.match!=null&&j!=null?l=j[a.match]||a.defaultValue:l=a.defaultValue,a.type==="number"&&(l=parseInt(l)),h.args[a.name]=l})}a.buffer=""}return i.then&&(a.state=i.then,a.buffer=""),h.command==null&&(h.command="null"),d&&console.log("KeyboardStateMapper#find",i),!0}),h.command?h:(a.buffer="",!1)},handleKeyboard:function(a,b,c,e,f){b==-1&&(b=0);if(b==0||c!=""&&c!=String.fromCharCode(0)){var g=this.$composeBuffer(a,b,c,f),h=g.bufferToUse,i=g.symbolicName,j=g.keyIdentifier;return g=this.$find(a,h,i,b,c,j),d&&console.log("KeyboardStateMapper#match",h,i,g),g}return null}},b.matchCharacterOnly=function(a,b,c,d){return b==0?!0:b==4&&c.length==1?!0:!1},b.StateHandler=e}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(a,b,c){var d=a("./range").Range,e=a("./lib/event_emitter").EventEmitter,f=a("./lib/oop"),g=function(a,b,c,d,e,f){var g=this;this.length=b,this.session=a,this.doc=a.getDocument(),this.mainClass=e,this.othersClass=f,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=d,this.$onCursorChange=function(){setTimeout(function(){g.onCursorChange()})},this.$pos=c;var h=a.getUndoManager().$undoStack||a.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=h.length,this.setup(),a.selection.on("changeCursor",this.$onCursorChange)};(function(){f.implement(this,e),this.setup=function(){var a=this,b=this.doc,c=this.session,e=this.$pos;this.pos=b.createAnchor(e.row,e.column),this.markerId=c.addMarker(new d(e.row,e.column,e.row,e.column+this.length),this.mainClass,null,!1),this.pos.on("change",function(b){c.removeMarker(a.markerId),a.markerId=c.addMarker(new d(b.value.row,b.value.column,b.value.row,b.value.column+a.length),a.mainClass,null,!1)}),this.others=[],this.$others.forEach(function(c){var d=b.createAnchor(c.row,c.column);a.others.push(d)}),c.setUndoSelect(!1)},this.showOtherMarkers=function(){if(this.othersActive)return;var a=this.session,b=this;this.othersActive=!0,this.others.forEach(function(c){c.markerId=a.addMarker(new d(c.row,c.column,c.row,c.column+b.length),b.othersClass,null,!1),c.on("change",function(e){a.removeMarker(c.markerId),c.markerId=a.addMarker(new d(e.value.row,e.value.column,e.value.row,e.value.column+b.length),b.othersClass,null,!1)})})},this.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var a=0;a<this.others.length;a++)this.session.removeMarker(this.others[a].markerId)},this.onUpdate=function(a){var b=a.data,c=b.range;if(c.start.row!==c.end.row)return;if(c.start.row!==this.pos.row)return;if(this.$updating)return;this.$updating=!0;var e=b.action==="insertText"?c.end.column-c.start.column:c.start.column-c.end.column;if(c.start.column>=this.pos.column&&c.start.column<=this.pos.column+this.length+1){var f=c.start.column-this.pos.column;this.length+=e;if(!this.session.$fromUndo){if(b.action==="insertText")for(var g=this.others.length-1;g>=0;g--){var h=this.others[g],i={row:h.row,column:h.column+f};h.row===c.start.row&&c.start.column<h.column&&(i.column+=e),this.doc.insert(i,b.text)}else if(b.action==="removeText")for(var g=this.others.length-1;g>=0;g--){var h=this.others[g],i={row:h.row,column:h.column+f};h.row===c.start.row&&c.start.column<h.column&&(i.column+=e),this.doc.remove(new d(i.row,i.column,i.row,i.column-e))}c.start.column===this.pos.column&&b.action==="insertText"?setTimeout(function(){this.pos.setPosition(this.pos.row,this.pos.column-e);for(var a=0;a<this.others.length;a++){var b=this.others[a],d={row:b.row,column:b.column-e};b.row===c.start.row&&c.start.column<b.column&&(d.column+=e),b.setPosition(d.row,d.column)}}.bind(this),0):c.start.column===this.pos.column&&b.action==="removeText"&&setTimeout(function(){for(var a=0;a<this.others.length;a++){var b=this.others[a];b.row===c.start.row&&c.start.column<b.column&&b.setPosition(b.row,b.column-e)}}.bind(this),0)}this.pos._emit("change",{value:this.pos});for(var g=0;g<this.others.length;g++)this.others[g]._emit("change",{value:this.others[g]})}this.$updating=!1},this.onCursorChange=function(a){if(this.$updating)return;var b=this.session.selection.getCursor();b.row===this.pos.row&&b.column>=this.pos.column&&b.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",a)):(this.hideOtherMarkers(),this._emit("cursorLeave",a))},this.detach=function(){this.session.removeMarker(this.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.pos.detach();for(var a=0;a<this.others.length;a++)this.others[a].detach();this.session.setUndoSelect(!0)},this.cancel=function(){if(this.$undoStackDepth===-1)throw Error("Canceling placeholders only supported with undo manager attached to session.");var a=this.session.getUndoManager(),b=(a.$undoStack||a.$undostack).length-this.$undoStackDepth;for(var c=0;c<b;c++)a.undo(!0)}}).call(g.prototype),b.PlaceHolder=g}),ace.define("ace/theme/textmate",["require","exports","module","ace/requirejs/text!ace/theme/textmate.css","ace/lib/dom"],function(a,b,c){b.isDark=!1,b.cssClass="ace-tm",b.cssText=a("ace/requirejs/text!./textmate.css");var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)}),ace.define("ace/requirejs/text!ace/theme/textmate.css",[],'.ace-tm .ace_editor {\n  border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n  border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n  background: #f0f0f0;\n  color: #333;\n}\n\n.ace-tm .ace_print_margin {\n  width: 1px;\n  background: #e8e8e8;\n}\n\n.ace-tm .ace_fold {\n    background-color: #6B72E6;\n}\n\n.ace-tm .ace_text-layer {\n}\n\n.ace-tm .ace_cursor {\n  border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n  border-left: 0px;\n  border-bottom: 1px solid black;\n}\n        \n.ace-tm .ace_line .ace_invisible {\n  color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_storage,\n.ace-tm .ace_line .ace_keyword {\n  color: blue;\n}\n\n.ace-tm .ace_line .ace_constant {\n  color: rgb(197, 6, 11);\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n  color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n  color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n  color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n  background-color: rgba(255, 0, 0, 0.1);\n  color: red;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n  color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n  color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n  color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n  color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n  color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n  color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n  color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n  color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n  color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n  color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n  color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_entity.ace_name.ace_function {\n  color: #0000A2;\n}\n\n.ace-tm .ace_markup.ace_markupine {\n    text-decoration:underline;\n}\n\n.ace-tm .ace_markup.ace_heading {\n  color: rgb(12, 7, 255);\n}\n\n.ace-tm .ace_markup.ace_list {\n  color:rgb(185, 6, 144);\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n  background: rgb(181, 213, 255);\n}\n.ace-tm.multiselect .ace_selection.start {\n  box-shadow: 0 0 3px 0px white;\n  border-radius: 2px;\n}\n.ace-tm .ace_marker-layer .ace_step {\n  background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n  background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n  margin: -1px 0 0 -1px;\n  border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n  background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_gutter_active_line {\n    background-color : #dcdcdc;\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n  background: rgb(250, 250, 255);\n  border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_meta.ace_tag {\n  color:rgb(0, 22, 142);\n}\n\n.ace-tm .ace_string.ace_regex {\n  color: rgb(255, 0, 0)\n}\n\n.ace-tm .ace_indent-guide {\n  background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\n}\n');
-            (function() {
-                ace.require(["ace/ace"], function(a) {
-                    a && a.config.init();
-                    if (!window.ace)
-                        window.ace = {};
-                    for (var key in a) if (a.hasOwnProperty(key))
-                        ace[key] = a[key];
-                });
-            })();
-        
\ No newline at end of file
diff --git a/web/public/javascripts/jquery-1.8.3.min.js b/web/public/javascripts/jquery-1.8.3.min.js
deleted file mode 100644
index 83589daa7..000000000
--- a/web/public/javascripts/jquery-1.8.3.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! jQuery v1.8.3 jquery.com | jquery.org/license */
-(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r<i;r++)v.event.add(t,n,u[n][r])}o.data&&(o.data=v.extend({},o.data))}function Ot(e,t){var n;if(t.nodeType!==1)return;t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),n==="object"?(t.parentNode&&(t.outerHTML=e.outerHTML),v.support.html5Clone&&e.innerHTML&&!v.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):n==="input"&&Et.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):n==="option"?t.selected=e.defaultSelected:n==="input"||n==="textarea"?t.defaultValue=e.defaultValue:n==="script"&&t.text!==e.text&&(t.text=e.text),t.removeAttribute(v.expando)}function Mt(e){return typeof e.getElementsByTagName!="undefined"?e.getElementsByTagName("*"):typeof e.querySelectorAll!="undefined"?e.querySelectorAll("*"):[]}function _t(e){Et.test(e.type)&&(e.defaultChecked=e.checked)}function Qt(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Jt.length;while(i--){t=Jt[i]+n;if(t in e)return t}return r}function Gt(e,t){return e=t||e,v.css(e,"display")==="none"||!v.contains(e.ownerDocument,e)}function Yt(e,t){var n,r,i=[],s=0,o=e.length;for(;s<o;s++){n=e[s];if(!n.style)continue;i[s]=v._data(n,"olddisplay"),t?(!i[s]&&n.style.display==="none"&&(n.style.display=""),n.style.display===""&&Gt(n)&&(i[s]=v._data(n,"olddisplay",nn(n.nodeName)))):(r=Dt(n,"display"),!i[s]&&r!=="none"&&v._data(n,"olddisplay",r))}for(s=0;s<o;s++){n=e[s];if(!n.style)continue;if(!t||n.style.display==="none"||n.style.display==="")n.style.display=t?i[s]||"":"none"}return e}function Zt(e,t,n){var r=Rt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function en(e,t,n,r){var i=n===(r?"border":"content")?4:t==="width"?1:0,s=0;for(;i<4;i+=2)n==="margin"&&(s+=v.css(e,n+$t[i],!0)),r?(n==="content"&&(s-=parseFloat(Dt(e,"padding"+$t[i]))||0),n!=="margin"&&(s-=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0)):(s+=parseFloat(Dt(e,"padding"+$t[i]))||0,n!=="padding"&&(s+=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0));return s}function tn(e,t,n){var r=t==="width"?e.offsetWidth:e.offsetHeight,i=!0,s=v.support.boxSizing&&v.css(e,"boxSizing")==="border-box";if(r<=0||r==null){r=Dt(e,t);if(r<0||r==null)r=e.style[t];if(Ut.test(r))return r;i=s&&(v.support.boxSizingReliable||r===e.style[t]),r=parseFloat(r)||0}return r+en(e,t,n||(s?"border":"content"),i)+"px"}function nn(e){if(Wt[e])return Wt[e];var t=v("<"+e+">").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write("<!doctype html><html><body>"),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u<a;u++)r=o[u],s=/^\+/.test(r),s&&(r=r.substr(1)||"*"),i=e[r]=e[r]||[],i[s?"unshift":"push"](n)}}function kn(e,n,r,i,s,o){s=s||n.dataTypes[0],o=o||{},o[s]=!0;var u,a=e[s],f=0,l=a?a.length:0,c=e===Sn;for(;f<l&&(c||!u);f++)u=a[f](n,r,i),typeof u=="string"&&(!c||o[u]?u=t:(n.dataTypes.unshift(u),u=kn(e,n,r,i,u,o)));return(c||!u)&&!o["*"]&&(u=kn(e,n,r,i,"*",o)),u}function Ln(e,n){var r,i,s=v.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((s[r]?e:i||(i={}))[r]=n[r]);i&&v.extend(!0,e,i)}function An(e,n,r){var i,s,o,u,a=e.contents,f=e.dataTypes,l=e.responseFields;for(s in l)s in r&&(n[l[s]]=r[s]);while(f[0]==="*")f.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("content-type"));if(i)for(s in a)if(a[s]&&a[s].test(i)){f.unshift(s);break}if(f[0]in r)o=f[0];else{for(s in r){if(!f[0]||e.converters[s+" "+f[0]]){o=s;break}u||(u=s)}o=o||u}if(o)return o!==f[0]&&f.unshift(o),r[o]}function On(e,t){var n,r,i,s,o=e.dataTypes.slice(),u=o[0],a={},f=0;e.dataFilter&&(t=e.dataFilter(t,e.dataType));if(o[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=o[++f];)if(i!=="*"){if(u!=="*"&&u!==i){n=a[u+" "+i]||a["* "+i];if(!n)for(r in a){s=r.split(" ");if(s[1]===i){n=a[u+" "+s[0]]||a["* "+s[0]];if(n){n===!0?n=a[r]:a[r]!==!0&&(i=s[0],o.splice(f--,0,i));break}}}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(l){return{state:"parsererror",error:n?l:"No conversion from "+u+" to "+i}}}u=i}return{state:"success",data:t}}function Fn(){try{return new e.XMLHttpRequest}catch(t){}}function In(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function $n(){return setTimeout(function(){qn=t},0),qn=v.now()}function Jn(e,t){v.each(t,function(t,n){var r=(Vn[t]||[]).concat(Vn["*"]),i=0,s=r.length;for(;i<s;i++)if(r[i].call(e,t,n))return})}function Kn(e,t,n){var r,i=0,s=0,o=Xn.length,u=v.Deferred().always(function(){delete a.elem}),a=function(){var t=qn||$n(),n=Math.max(0,f.startTime+f.duration-t),r=n/f.duration||0,i=1-r,s=0,o=f.tweens.length;for(;s<o;s++)f.tweens[s].run(i);return u.notifyWith(e,[f,i,n]),i<1&&o?n:(u.resolveWith(e,[f]),!1)},f=u.promise({elem:e,props:v.extend({},t),opts:v.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:qn||$n(),duration:n.duration,tweens:[],createTween:function(t,n,r){var i=v.Tween(e,f.opts,t,n,f.opts.specialEasing[t]||f.opts.easing);return f.tweens.push(i),i},stop:function(t){var n=0,r=t?f.tweens.length:0;for(;n<r;n++)f.tweens[n].run(1);return t?u.resolveWith(e,[f,t]):u.rejectWith(e,[f,t]),this}}),l=f.props;Qn(l,f.opts.specialEasing);for(;i<o;i++){r=Xn[i].call(f,e,l,f.opts);if(r)return r}return Jn(f,l),v.isFunction(f.opts.start)&&f.opts.start.call(e,f),v.fx.timer(v.extend(a,{anim:f,queue:f.opts.queue,elem:e})),f.progress(f.opts.progress).done(f.opts.done,f.opts.complete).fail(f.opts.fail).always(f.opts.always)}function Qn(e,t){var n,r,i,s,o;for(n in e){r=v.camelCase(n),i=t[r],s=e[n],v.isArray(s)&&(i=s[1],s=e[n]=s[0]),n!==r&&(e[r]=s,delete e[n]),o=v.cssHooks[r];if(o&&"expand"in o){s=o.expand(s),delete e[r];for(n in s)n in e||(e[n]=s[n],t[n]=i)}else t[r]=i}}function Gn(e,t,n){var r,i,s,o,u,a,f,l,c,h=this,p=e.style,d={},m=[],g=e.nodeType&&Gt(e);n.queue||(l=v._queueHooks(e,"fx"),l.unqueued==null&&(l.unqueued=0,c=l.empty.fire,l.empty.fire=function(){l.unqueued||c()}),l.unqueued++,h.always(function(){h.always(function(){l.unqueued--,v.queue(e,"fx").length||l.empty.fire()})})),e.nodeType===1&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],v.css(e,"display")==="inline"&&v.css(e,"float")==="none"&&(!v.support.inlineBlockNeedsLayout||nn(e.nodeName)==="inline"?p.display="inline-block":p.zoom=1)),n.overflow&&(p.overflow="hidden",v.support.shrinkWrapBlocks||h.done(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t){s=t[r];if(Un.exec(s)){delete t[r],a=a||s==="toggle";if(s===(g?"hide":"show"))continue;m.push(r)}}o=m.length;if(o){u=v._data(e,"fxshow")||v._data(e,"fxshow",{}),"hidden"in u&&(g=u.hidden),a&&(u.hidden=!g),g?v(e).show():h.done(function(){v(e).hide()}),h.done(function(){var t;v.removeData(e,"fxshow",!0);for(t in d)v.style(e,t,d[t])});for(r=0;r<o;r++)i=m[r],f=h.createTween(i,g?u[i]:0),d[i]=u[i]||v.style(e,i),i in u||(u[i]=f.start,g&&(f.end=f.start,f.start=i==="width"||i==="height"?1:0))}}function Yn(e,t,n,r,i){return new Yn.prototype.init(e,t,n,r,i)}function Zn(e,t){var n,r={height:e},i=0;t=t?1:0;for(;i<4;i+=2-t)n=$t[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function tr(e){return v.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}var n,r,i=e.document,s=e.location,o=e.navigator,u=e.jQuery,a=e.$,f=Array.prototype.push,l=Array.prototype.slice,c=Array.prototype.indexOf,h=Object.prototype.toString,p=Object.prototype.hasOwnProperty,d=String.prototype.trim,v=function(e,t){return new v.fn.init(e,t,n)},m=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,g=/\S/,y=/\s+/,b=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,w=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a<f;a++)if((e=arguments[a])!=null)for(n in e){r=u[n],i=e[n];if(u===i)continue;l&&i&&(v.isPlainObject(i)||(s=v.isArray(i)))?(s?(s=!1,o=r&&v.isArray(r)?r:[]):o=r&&v.isPlainObject(r)?r:{},u[n]=v.extend(l,o,i)):i!==t&&(u[n]=i)}return u},v.extend({noConflict:function(t){return e.$===v&&(e.$=a),t&&e.jQuery===v&&(e.jQuery=u),v},isReady:!1,readyWait:1,holdReady:function(e){e?v.readyWait++:v.ready(!0)},ready:function(e){if(e===!0?--v.readyWait:v.isReady)return;if(!i.body)return setTimeout(v.ready,1);v.isReady=!0;if(e!==!0&&--v.readyWait>0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s<o;)if(n.apply(e[s++],r)===!1)break}else if(u){for(i in e)if(n.call(e[i],i,e[i])===!1)break}else for(;s<o;)if(n.call(e[s],s,e[s++])===!1)break;return e},trim:d&&!d.call("\ufeff\u00a0")?function(e){return e==null?"":d.call(e)}:function(e){return e==null?"":(e+"").replace(b,"")},makeArray:function(e,t){var n,r=t||[];return e!=null&&(n=v.type(e),e.length==null||n==="string"||n==="function"||n==="regexp"||v.isWindow(e)?f.call(r,e):v.merge(r,e)),r},inArray:function(e,t,n){var r;if(t){if(c)return c.call(t,e,n);r=t.length,n=n?n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,s=0;if(typeof r=="number")for(;s<r;s++)e[i++]=n[s];else while(n[s]!==t)e[i++]=n[s++];return e.length=i,e},grep:function(e,t,n){var r,i=[],s=0,o=e.length;n=!!n;for(;s<o;s++)r=!!t(e[s],s),n!==r&&i.push(e[s]);return i},map:function(e,n,r){var i,s,o=[],u=0,a=e.length,f=e instanceof v||a!==t&&typeof a=="number"&&(a>0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u<a;u++)i=n(e[u],u,r),i!=null&&(o[o.length]=i);else for(s in e)i=n(e[s],s,r),i!=null&&(o[o.length]=i);return o.concat.apply([],o)},guid:1,proxy:function(e,n){var r,i,s;return typeof n=="string"&&(r=e[n],n=e,e=r),v.isFunction(e)?(i=l.call(arguments,2),s=function(){return e.apply(n,i.concat(l.call(arguments)))},s.guid=e.guid=e.guid||v.guid++,s):t},access:function(e,n,r,i,s,o,u){var a,f=r==null,l=0,c=e.length;if(r&&typeof r=="object"){for(l in r)v.access(e,n,l,r[l],1,o,i);s=1}else if(i!==t){a=u===t&&v.isFunction(i),f&&(a?(a=n,n=function(e,t,n){return a.call(v(e),n)}):(n.call(e,i),n=null));if(n)for(;l<c;l++)n(e[l],r,a?i.call(e[l],l,n(e[l],r)):i,u);s=1}return s?e:f?n.call(e):c?n(e[0],r):o},now:function(){return(new Date).getTime()}}),v.ready.promise=function(t){if(!r){r=v.Deferred();if(i.readyState==="complete")setTimeout(v.ready,1);else if(i.addEventListener)i.addEventListener("DOMContentLoaded",A,!1),e.addEventListener("load",v.ready,!1);else{i.attachEvent("onreadystatechange",A),e.attachEvent("onload",v.ready);var n=!1;try{n=e.frameElement==null&&i.documentElement}catch(s){}n&&n.doScroll&&function o(){if(!v.isReady){try{n.doScroll("left")}catch(e){return setTimeout(o,50)}v.ready()}}()}}return r.promise(t)},v.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(e,t){O["[object "+t+"]"]=t.toLowerCase()}),n=v(i);var M={};v.Callbacks=function(e){e=typeof e=="string"?M[e]||_(e):v.extend({},e);var n,r,i,s,o,u,a=[],f=!e.once&&[],l=function(t){n=e.memory&&t,r=!0,u=s||0,s=0,o=a.length,i=!0;for(;a&&u<o;u++)if(a[u].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}i=!1,a&&(f?f.length&&l(f.shift()):n?a=[]:c.disable())},c={add:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this},remove:function(){return a&&v.each(arguments,function(e,t){var n;while((n=v.inArray(t,a,n))>-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t<r;t++)n[t]&&v.isFunction(n[t].promise)?n[t].promise().done(o(t,f,n)).fail(s.reject).progress(o(t,a,u)):--i}return i||s.resolveWith(f,n),s.promise()}}),v.support=function(){var t,n,r,s,o,u,a,f,l,c,h,p=i.createElement("div");p.setAttribute("className","t"),p.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="<table><tr><td></td><td>t</td></tr></table>",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="<div></div>",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i<s;i++)delete r[t[i]];if(!(n?B:v.isEmptyObject)(r))return}}if(!n){delete u[a].data;if(!B(u[a]))return}o?v.cleanData([e],!0):v.support.deleteExpando||u!=u.window?delete u[a]:u[a]=null},_data:function(e,t,n){return v.data(e,t,n,!0)},acceptData:function(e){var t=e.nodeName&&v.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),v.fn.extend({data:function(e,n){var r,i,s,o,u,a=this[0],f=0,l=null;if(e===t){if(this.length){l=v.data(a);if(a.nodeType===1&&!v._data(a,"parsedAttrs")){s=a.attributes;for(u=s.length;f<u;f++)o=s[f].name,o.indexOf("data-")||(o=v.camelCase(o.substring(5)),H(a,o,l[o]));v._data(a,"parsedAttrs",!0)}}return l}return typeof e=="object"?this.each(function(){v.data(this,e)}):(r=e.split(".",2),r[1]=r[1]?"."+r[1]:"",i=r[1]+"!",v.access(this,function(n){if(n===t)return l=this.triggerHandler("getData"+i,[r[0]]),l===t&&a&&(l=v.data(a,e),l=H(a,e,l)),l===t&&r[1]?this.data(r[0]):l;r[1]=n,this.each(function(){var t=v(this);t.triggerHandler("setData"+i,r),v.data(this,e,n),t.triggerHandler("changeData"+i,r)})},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length<r?v.queue(this[0],e):n===t?this:this.each(function(){var t=v.queue(this,e,n);v._queueHooks(this,e),e==="fx"&&t[0]!=="inprogress"&&v.dequeue(this,e)})},dequeue:function(e){return this.each(function(){v.dequeue(this,e)})},delay:function(e,t){return e=v.fx?v.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,s=v.Deferred(),o=this,u=this.length,a=function(){--i||s.resolveWith(o,[o])};typeof e!="string"&&(n=e,e=t),e=e||"fx";while(u--)r=v._data(o[u],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(a));return a(),s.promise(n)}});var j,F,I,q=/[\t\r\n]/g,R=/\r/g,U=/^(?:button|input)$/i,z=/^(?:button|input|object|select|textarea)$/i,W=/^a(?:rea|)$/i,X=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,V=v.support.getSetAttribute;v.fn.extend({attr:function(e,t){return v.access(this,v.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n<r;n++){i=this[n];if(i.nodeType===1)if(!i.className&&t.length===1)i.className=e;else{s=" "+i.className+" ";for(o=0,u=t.length;o<u;o++)s.indexOf(" "+t[o]+" ")<0&&(s+=t[o]+" ");i.className=v.trim(s)}}}return this},removeClass:function(e){var n,r,i,s,o,u,a;if(v.isFunction(e))return this.each(function(t){v(this).removeClass(e.call(this,t,this.className))});if(e&&typeof e=="string"||e===t){n=(e||"").split(y);for(u=0,a=this.length;u<a;u++){i=this[u];if(i.nodeType===1&&i.className){r=(" "+i.className+" ").replace(q," ");for(s=0,o=n.length;s<o;s++)while(r.indexOf(" "+n[s]+" ")>=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n<r;n++)if(this[n].nodeType===1&&(" "+this[n].className+" ").replace(q," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a<u;a++){n=r[a];if((n.selected||a===i)&&(v.support.optDisabled?!n.disabled:n.getAttribute("disabled")===null)&&(!n.parentNode.disabled||!v.nodeName(n.parentNode,"optgroup"))){t=v(n).val();if(s)return t;o.push(t)}}return o},set:function(e,t){var n=v.makeArray(t);return v(e).find("option").each(function(){this.selected=v.inArray(v(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o<r.length;o++)i=r[o],i&&(n=v.propFix[i]||i,s=X.test(i),s||v.attr(e,i,""),e.removeAttribute(V?i:n),s&&n in e&&(e[n]=!1))}},attrHooks:{type:{set:function(e,t){if(U.test(e.nodeName)&&e.parentNode)v.error("type property can't be changed");else if(!v.support.radioValue&&t==="radio"&&v.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}},value:{get:function(e,t){return j&&v.nodeName(e,"button")?j.get(e,t):t in e?e.value:null},set:function(e,t,n){if(j&&v.nodeName(e,"button"))return j.set(e,t,n);e.value=t}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!e||u===3||u===8||u===2)return;return o=u!==1||!v.isXMLDoc(e),o&&(n=v.propFix[n]||n,s=v.propHooks[n]),r!==t?s&&"set"in s&&(i=s.set(e,r,n))!==t?i:e[n]=r:s&&"get"in s&&(i=s.get(e,n))!==null?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):z.test(e.nodeName)||W.test(e.nodeName)&&e.href?0:t}}}}),F={get:function(e,n){var r,i=v.prop(e,n);return i===!0||typeof i!="boolean"&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?v.removeAttr(e,n):(r=v.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},V||(I={name:!0,id:!0,coords:!0},j=v.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(I[n]?r.value!=="":r.specified)?r.value:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=i.createAttribute(n),e.setAttributeNode(r)),r.value=t+""}},v.each(["width","height"],function(e,t){v.attrHooks[t]=v.extend(v.attrHooks[t],{set:function(e,n){if(n==="")return e.setAttribute(t,"auto"),n}})}),v.attrHooks.contenteditable={get:j.get,set:function(e,t,n){t===""&&(t="false"),j.set(e,t,n)}}),v.support.hrefNormalized||v.each(["href","src","width","height"],function(e,n){v.attrHooks[n]=v.extend(v.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return r===null?t:r}})}),v.support.style||(v.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=t+""}}),v.support.optSelected||(v.propHooks.selected=v.extend(v.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),v.support.enctype||(v.propFix.enctype="encoding"),v.support.checkOn||v.each(["radio","checkbox"],function(){v.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}}),v.each(["radio","checkbox"],function(){v.valHooks[this]=v.extend(v.valHooks[this],{set:function(e,t){if(v.isArray(t))return e.checked=v.inArray(v(e).val(),t)>=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f<n.length;f++){l=J.exec(n[f])||[],c=l[1],h=(l[2]||"").split(".").sort(),g=v.event.special[c]||{},c=(s?g.delegateType:g.bindType)||c,g=v.event.special[c]||{},p=v.extend({type:c,origType:l[1],data:i,handler:r,guid:r.guid,selector:s,needsContext:s&&v.expr.match.needsContext.test(s),namespace:h.join(".")},d),m=a[c];if(!m){m=a[c]=[],m.delegateCount=0;if(!g.setup||g.setup.call(e,i,h,u)===!1)e.addEventListener?e.addEventListener(c,u,!1):e.attachEvent&&e.attachEvent("on"+c,u)}g.add&&(g.add.call(e,p),p.handler.guid||(p.handler.guid=r.guid)),s?m.splice(m.delegateCount++,0,p):m.push(p),v.event.global[c]=!0}e=null},global:{},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,p,d,m,g=v.hasData(e)&&v._data(e);if(!g||!(h=g.events))return;t=v.trim(Z(t||"")).split(" ");for(s=0;s<t.length;s++){o=J.exec(t[s])||[],u=a=o[1],f=o[2];if(!u){for(u in h)v.event.remove(e,u+t[s],n,r,!0);continue}p=v.event.special[u]||{},u=(r?p.delegateType:p.bindType)||u,d=h[u]||[],l=d.length,f=f?new RegExp("(^|\\.)"+f.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(c=0;c<d.length;c++)m=d[c],(i||a===m.origType)&&(!n||n.guid===m.guid)&&(!f||f.test(m.namespace))&&(!r||r===m.selector||r==="**"&&m.selector)&&(d.splice(c--,1),m.selector&&d.delegateCount--,p.remove&&p.remove.call(e,m));d.length===0&&l!==d.length&&((!p.teardown||p.teardown.call(e,f,g.handle)===!1)&&v.removeEvent(e,u,g.handle),delete h[u])}v.isEmptyObject(h)&&(delete g.handle,v.removeData(e,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,s,o){if(!s||s.nodeType!==3&&s.nodeType!==8){var u,a,f,l,c,h,p,d,m,g,y=n.type||n,b=[];if(Y.test(y+v.event.triggered))return;y.indexOf("!")>=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f<m.length&&!n.isPropagationStopped();f++)l=m[f][0],n.type=m[f][1],d=(v._data(l,"events")||{})[n.type]&&v._data(l,"handle"),d&&d.apply(l,r),d=h&&l[h],d&&v.acceptData(l)&&d.apply&&d.apply(l,r)===!1&&n.preventDefault();return n.type=y,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(s.ownerDocument,r)===!1)&&(y!=="click"||!v.nodeName(s,"a"))&&v.acceptData(s)&&h&&s[y]&&(y!=="focus"&&y!=="blur"||n.target.offsetWidth!==0)&&!v.isWindow(s)&&(c=s[h],c&&(s[h]=null),v.event.triggered=y,s[y](),v.event.triggered=t,c&&(s[h]=c)),n.result}return},dispatch:function(n){n=v.event.fix(n||e.event);var r,i,s,o,u,a,f,c,h,p,d=(v._data(this,"events")||{})[n.type]||[],m=d.delegateCount,g=l.call(arguments),y=!n.exclusive&&!n.namespace,b=v.event.special[n.type]||{},w=[];g[0]=n,n.delegateTarget=this;if(b.preDispatch&&b.preDispatch.call(this,n)===!1)return;if(m&&(!n.button||n.type!=="click"))for(s=n.target;s!=this;s=s.parentNode||this)if(s.disabled!==!0||n.type!=="click"){u={},f=[];for(r=0;r<m;r++)c=d[r],h=c.selector,u[h]===t&&(u[h]=c.needsContext?v(h,this).index(s)>=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r<w.length&&!n.isPropagationStopped();r++){a=w[r],n.currentTarget=a.elem;for(i=0;i<a.matches.length&&!n.isImmediatePropagationStopped();i++){c=a.matches[i];if(y||!n.namespace&&!c.namespace||n.namespace_re&&n.namespace_re.test(c.namespace))n.data=c.data,n.handleObj=c,o=((v.event.special[c.origType]||{}).handle||c.handler).apply(a.elem,g),o!==t&&(n.result=o,o===!1&&(n.preventDefault(),n.stopPropagation()))}}return b.postDispatch&&b.postDispatch.call(this,n),n.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return e.which==null&&(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,s,o,u=n.button,a=n.fromElement;return e.pageX==null&&n.clientX!=null&&(r=e.target.ownerDocument||i,s=r.documentElement,o=r.body,e.pageX=n.clientX+(s&&s.scrollLeft||o&&o.scrollLeft||0)-(s&&s.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(s&&s.scrollTop||o&&o.scrollTop||0)-(s&&s.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?n.toElement:a),!e.which&&u!==t&&(e.which=u&1?1:u&2?3:u&4?2:0),e}},fix:function(e){if(e[v.expando])return e;var t,n,r=e,s=v.event.fixHooks[e.type]||{},o=s.props?this.props.concat(s.props):this.props;e=v.Event(r);for(t=o.length;t;)n=o[--t],e[n]=r[n];return e.target||(e.target=r.srcElement||i),e.target.nodeType===3&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,r):e},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(e,t,n){v.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=v.extend(new v.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?v.event.trigger(i,null,t):v.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},v.event.handle=v.event.dispatch,v.removeEvent=i.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]=="undefined"&&(e[r]=null),e.detachEvent(r,n))},v.Event=function(e,t){if(!(this instanceof v.Event))return new v.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?tt:et):this.type=e,t&&v.extend(this,t),this.timeStamp=e&&e.timeStamp||v.now(),this[v.expando]=!0},v.Event.prototype={preventDefault:function(){this.isDefaultPrevented=tt;var e=this.originalEvent;if(!e)return;e.preventDefault?e.preventDefault():e.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=tt;var e=this.originalEvent;if(!e)return;e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=tt,this.stopPropagation()},isDefaultPrevented:et,isPropagationStopped:et,isImmediatePropagationStopped:et},v.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){v.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,s=e.handleObj,o=s.selector;if(!i||i!==r&&!v.contains(r,i))e.type=s.origType,n=s.handler.apply(this,arguments),e.type=t;return n}}}),v.support.submitBubbles||(v.event.special.submit={setup:function(){if(v.nodeName(this,"form"))return!1;v.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=v.nodeName(n,"input")||v.nodeName(n,"button")?n.form:t;r&&!v._data(r,"_submit_attached")&&(v.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),v._data(r,"_submit_attached",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&v.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){if(v.nodeName(this,"form"))return!1;v.event.remove(this,"._submit")}}),v.support.changeBubbles||(v.event.special.change={setup:function(){if($.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")v.event.add(this,"propertychange._change",function(e){e.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),v.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),v.event.simulate("change",this,e,!0)});return!1}v.event.add(this,"beforeactivate._change",function(e){var t=e.target;$.test(t.nodeName)&&!v._data(t,"_change_attached")&&(v.event.add(t,"change._change",function(e){this.parentNode&&!e.isSimulated&&!e.isTrigger&&v.event.simulate("change",this.parentNode,e,!0)}),v._data(t,"_change_attached",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!=="radio"&&t.type!=="checkbox")return e.handleObj.handler.apply(this,arguments)},teardown:function(){return v.event.remove(this,"._change"),!$.test(this.nodeName)}}),v.support.focusinBubbles||v.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){v.event.simulate(t,e.target,v.event.fix(e),!0)};v.event.special[t]={setup:function(){n++===0&&i.addEventListener(e,r,!0)},teardown:function(){--n===0&&i.removeEventListener(e,r,!0)}}}),v.fn.extend({on:function(e,n,r,i,s){var o,u;if(typeof e=="object"){typeof n!="string"&&(r=r||n,n=t);for(u in e)this.on(u,n,r,e[u],s);return this}r==null&&i==null?(i=n,r=n=t):i==null&&(typeof n=="string"?(i=r,r=t):(i=r,r=n,n=t));if(i===!1)i=et;else if(!i)return this;return s===1&&(o=i,i=function(e){return v().off(e),o.apply(this,arguments)},i.guid=o.guid||(o.guid=v.guid++)),this.each(function(){v.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,s;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,v(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if(typeof e=="object"){for(s in e)this.off(s,n,e[s]);return this}if(n===!1||typeof n=="function")r=n,n=t;return r===!1&&(r=et),this.each(function(){v.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return v(this.context).on(e,this.selector,t,n),this},die:function(e,t){return v(this.context).off(e,this.selector||"**",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){v.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return v.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||v.guid++,r=0,i=function(n){var i=(v._data(this,"lastToggle"+e.guid)||0)%r;return v._data(this,"lastToggle"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};i.guid=n;while(r<t.length)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),v.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){v.fn[t]=function(e,n){return n==null&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u<a;u++)if(s=e[u])if(!n||n(s,r,i))o.push(s),f&&t.push(u);return o}function ct(e,t,n,r,i,s){return r&&!r[d]&&(r=ct(r)),i&&!i[d]&&(i=ct(i,s)),N(function(s,o,u,a){var f,l,c,h=[],p=[],d=o.length,v=s||dt(t||"*",u.nodeType?[u]:u,[]),m=e&&(s||!t)?lt(v,h,e,u,a):v,g=n?i||(s?e:d||r)?[]:o:m;n&&n(m,g,u,a);if(r){f=lt(g,p),r(f,[],u,a),l=f.length;while(l--)if(c=f[l])g[p[l]]=!(m[p[l]]=c)}if(s){if(i||e){if(i){f=[],l=g.length;while(l--)(c=g[l])&&f.push(m[l]=c);i(null,g=[],f,a)}l=g.length;while(l--)(c=g[l])&&(f=i?T.call(s,c):h[l])>-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a<s;a++)if(n=i.relative[e[a].type])h=[at(ft(h),n)];else{n=i.filter[e[a].type].apply(null,e[a].matches);if(n[d]){r=++a;for(;r<s;r++)if(i.relative[e[r].type])break;return ct(a>1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a<r&&ht(e.slice(a,r)),r<s&&ht(e=e.slice(r)),r<s&&e.join(""))}h.push(n)}return ft(h)}function pt(e,t){var r=t.length>0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r<i;r++)nt(e,t[r],n);return n}function vt(e,t,n,r,s){var o,u,f,l,c,h=ut(e),p=h.length;if(!r&&h.length===1){u=h[0]=h[0].slice(0);if(u.length>2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;t<n;t++)if(this[t]===e)return t;return-1},N=function(e,t){return e[d]=t==null||t,e},C=function(){var e={},t=[];return N(function(n,r){return t.push(n)>i.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="<a name='"+d+"'></a><div name='"+d+"'></div>",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:st(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:st(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},f=y.compareDocumentPosition?function(e,t){return e===t?(l=!0,0):(!e.compareDocumentPosition||!t.compareDocumentPosition?e.compareDocumentPosition:e.compareDocumentPosition(t)&4)?-1:1}:function(e,t){if(e===t)return l=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],s=[],o=e.parentNode,u=t.parentNode,a=o;if(o===u)return ot(e,t);if(!o)return-1;if(!u)return 1;while(a)i.unshift(a),a=a.parentNode;a=u;while(a)s.unshift(a),a=a.parentNode;n=i.length,r=s.length;for(var f=0;f<n&&f<r;f++)if(i[f]!==s[f])return ot(i[f],s[f]);return f===n?ot(e,s[f],-1):ot(i[f],t,1)},[0,0].sort(f),h=!l,nt.uniqueSort=function(e){var t,n=[],r=1,i=0;l=h,e.sort(f);if(l){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e},nt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},a=nt.compile=function(e,t){var n,r=[],i=[],s=A[d][e+" "];if(!s){t||(t=ut(e)),n=t.length;while(n--)s=ht(t[n]),s[d]?r.push(s):i.push(s);s=A(e,pt(i,r))}return s},g.querySelectorAll&&function(){var e,t=vt,n=/'|\\/g,r=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,i=[":focus"],s=[":active"],u=y.matchesSelector||y.mozMatchesSelector||y.webkitMatchesSelector||y.oMatchesSelector||y.msMatchesSelector;K(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="<p test=''></p>",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="<input type='hidden'/>",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t<n;t++)if(v.contains(u[t],this))return!0});o=this.pushStack("","find",e);for(t=0,n=this.length;t<n;t++){r=o.length,v.find(e,this[t],o);if(t>0)for(i=r;i<o.length;i++)for(s=0;s<r;s++)if(o[s]===o[i]){o.splice(i--,1);break}}return o},has:function(e){var t,n=v(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(v.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1),"not",e)},filter:function(e){return this.pushStack(ft(this,e,!0),"filter",e)},is:function(e){return!!e&&(typeof e=="string"?st.test(e)?v(e,this.context).index(this[0])>=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r<i;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&n.nodeType!==11){if(o?o.index(n)>-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/<tbody/i,gt=/<|&#?\w+;/,yt=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,wt=new RegExp("<(?:"+ct+")[\\s/>]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,Nt={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X<div>","</div>"]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1></$2>");try{for(;r<i;r++)n=this[r]||{},n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),n.innerHTML=e);n=0}catch(s){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return ut(this[0])?this.length?this.pushStack(v(v.isFunction(e)?e():e),"replaceWith",e):this:v.isFunction(e)?this.each(function(t){var n=v(this),r=n.html();n.replaceWith(e.call(this,t,r))}):(typeof e!="string"&&(e=v(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;v(this).remove(),t?v(t).before(e):v(n).append(e)}))},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=[].concat.apply([],e);var i,s,o,u,a=0,f=e[0],l=[],c=this.length;if(!v.support.checkClone&&c>1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a<c;a++)r.call(n&&v.nodeName(this[a],"table")?Lt(this[a],"tbody"):this[a],a===u?o:v.clone(o,!0,!0))}o=s=null,l.length&&v.each(l,function(e,t){t.src?v.ajax?v.ajax({url:t.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):v.error("no ajax"):v.globalEval((t.text||t.textContent||t.innerHTML||"").replace(Tt,"")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),v.buildFragment=function(e,n,r){var s,o,u,a=e[0];return n=n||i,n=!n.nodeType&&n[0]||n,n=n.ownerDocument||n,e.length===1&&typeof a=="string"&&a.length<512&&n===i&&a.charAt(0)==="<"&&!bt.test(a)&&(v.support.checkClone||!St.test(a))&&(v.support.html5Clone||!wt.test(a))&&(o=!0,s=v.fragments[a],u=s!==t),s||(s=n.createDocumentFragment(),v.clean(e,n,s,r),o&&(v.fragments[a]=u&&s)),{fragment:s,cacheable:o}},v.fragments={},v.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){v.fn[e]=function(n){var r,i=0,s=[],o=v(n),u=o.length,a=this.length===1&&this[0].parentNode;if((a==null||a&&a.nodeType===11&&a.childNodes.length===1)&&u===1)return o[t](this[0]),this;for(;i<u;i++)r=(i>0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1></$2>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]==="<table>"&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("<div>").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r<i;r++)n=e[r],Vn[n]=Vn[n]||[],Vn[n].unshift(t)},prefilter:function(e,t){t?Xn.unshift(e):Xn.push(e)}}),v.Tween=Yn,Yn.prototype={constructor:Yn,init:function(e,t,n,r,i,s){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=s||(v.cssNumber[n]?"":"px")},cur:function(){var e=Yn.propHooks[this.prop];return e&&e.get?e.get(this):Yn.propHooks._default.get(this)},run:function(e){var t,n=Yn.propHooks[this.prop];return this.options.duration?this.pos=t=v.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Yn.propHooks._default.set(this),this}},Yn.prototype.init.prototype=Yn.prototype,Yn.propHooks={_default:{get:function(e){var t;return e.elem[e.prop]==null||!!e.elem.style&&e.elem.style[e.prop]!=null?(t=v.css(e.elem,e.prop,!1,""),!t||t==="auto"?0:t):e.elem[e.prop]},set:function(e){v.fx.step[e.prop]?v.fx.step[e.prop](e):e.elem.style&&(e.elem.style[v.cssProps[e.prop]]!=null||v.cssHooks[e.prop])?v.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Yn.propHooks.scrollTop=Yn.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},v.each(["toggle","show","hide"],function(e,t){var n=v.fn[t];v.fn[t]=function(r,i,s){return r==null||typeof r=="boolean"||!e&&v.isFunction(r)&&v.isFunction(i)?n.apply(this,arguments):this.animate(Zn(t,!0),r,i,s)}}),v.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Gt).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=v.isEmptyObject(e),s=v.speed(t,n,r),o=function(){var t=Kn(this,v.extend({},e),s);i&&t.stop(!0)};return i||s.queue===!1?this.each(o):this.queue(s.queue,o)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return typeof e!="string"&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=e!=null&&e+"queueHooks",s=v.timers,o=v._data(this);if(n)o[n]&&o[n].stop&&i(o[n]);else for(n in o)o[n]&&o[n].stop&&Wn.test(n)&&i(o[n]);for(n=s.length;n--;)s[n].elem===this&&(e==null||s[n].queue===e)&&(s[n].anim.stop(r),t=!1,s.splice(n,1));(t||!r)&&v.dequeue(this,e)})}}),v.each({slideDown:Zn("show"),slideUp:Zn("hide"),slideToggle:Zn("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){v.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),v.speed=function(e,t,n){var r=e&&typeof e=="object"?v.extend({},e):{complete:n||!n&&t||v.isFunction(e)&&e,duration:e,easing:n&&t||t&&!v.isFunction(t)&&t};r.duration=v.fx.off?0:typeof r.duration=="number"?r.duration:r.duration in v.fx.speeds?v.fx.speeds[r.duration]:v.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue="fx";return r.old=r.complete,r.complete=function(){v.isFunction(r.old)&&r.old.call(this),r.queue&&v.dequeue(this,r.queue)},r},v.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},v.timers=[],v.fx=Yn.prototype.init,v.fx.tick=function(){var e,n=v.timers,r=0;qn=v.now();for(;r<n.length;r++)e=n[r],!e()&&n[r]===e&&n.splice(r--,1);n.length||v.fx.stop(),qn=t},v.fx.timer=function(e){e()&&v.timers.push(e)&&!Rn&&(Rn=setInterval(v.fx.tick,v.fx.interval))},v.fx.interval=13,v.fx.stop=function(){clearInterval(Rn),Rn=null},v.fx.speeds={slow:600,fast:200,_default:400},v.fx.step={},v.expr&&v.expr.filters&&(v.expr.filters.animated=function(e){return v.grep(v.timers,function(t){return e===t.elem}).length});var er=/^(?:body|html)$/i;v.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){v.offset.setOffset(this,e,t)});var n,r,i,s,o,u,a,f={top:0,left:0},l=this[0],c=l&&l.ownerDocument;if(!c)return;return(r=c.body)===l?v.offset.bodyOffset(l):(n=c.documentElement,v.contains(n,l)?(typeof l.getBoundingClientRect!="undefined"&&(f=l.getBoundingClientRect()),i=tr(c),s=n.clientTop||r.clientTop||0,o=n.clientLeft||r.clientLeft||0,u=i.pageYOffset||n.scrollTop,a=i.pageXOffset||n.scrollLeft,{top:f.top+u-s,left:f.left+a-o}):f)},v.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return v.support.doesNotIncludeMarginInBodyOffset&&(t+=parseFloat(v.css(e,"marginTop"))||0,n+=parseFloat(v.css(e,"marginLeft"))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=v.css(e,"position");r==="static"&&(e.style.position="relative");var i=v(e),s=i.offset(),o=v.css(e,"top"),u=v.css(e,"left"),a=(r==="absolute"||r==="fixed")&&v.inArray("auto",[o,u])>-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window);
\ No newline at end of file
diff --git a/web/public/javascripts/leon.js b/web/public/javascripts/leon.js
deleted file mode 100644
index 6d2a774b9..000000000
--- a/web/public/javascripts/leon.js
+++ /dev/null
@@ -1,63 +0,0 @@
-var editor = null;
-
-function appendError(title, msg) {
-    alert(title+": "+msg)
-}
-
-function loadExample(kind, prefix) {
-    var value = $("#example-loader-"+kind).val()
-
-    if (value) { 
-        $.ajax({
-          url: prefix+'/ajax/getExample/'+value,
-          dataType: "json",
-          success: function(data, textStatus, jqXHR) {
-            if (data.status == "success") {
-                editor.setValue(data.code);
-                editor.selection.clearSelection();
-                editor.gotoLine(0);
-            } else {
-                appendError("Loading example failed :(", data.errormsg)
-            }
-          },
-          error: function(jqXHR, textStatus, errorThrown) {
-            appendError("Loading example failed :(", errorThrown)
-          }
-        });
-    }
-}
-
-$(document).ready(function() {
-    editor = ace.edit("codebox");
-    editor.getSession().setMode("ace/mode/scala");
-    editor.getSession().setUseWrapMode(true);
-
-
-    $("#tabs a").click(function() {
-        activateTab($(this).attr("href"));
-    });
-
-    var hash = window.location.hash
-
-    if (hash == "") {
-        activateTab("#verification");
-    } else {
-        activateTab(hash);
-    }
-});
-
-
-function activateTab(tab) {
-
-    $("#tabs a").each(function() {
-        var wh = $(this).attr("href").substr(1);
-        if ($(this).attr("href") == tab) {
-            $(this).addClass("active");
-            $("#tab-"+wh).show();
-            $("#leon-mode").val(wh);
-        } else {
-            $(this).removeClass("active");
-            $("#tab-"+wh).hide();
-        }
-    });
-}
diff --git a/web/public/javascripts/mode-scala.js b/web/public/javascripts/mode-scala.js
deleted file mode 100644
index 71180ce15..000000000
--- a/web/public/javascripts/mode-scala.js
+++ /dev/null
@@ -1 +0,0 @@
-ace.define("ace/mode/scala",["require","exports","module","ace/lib/oop","ace/mode/javascript","ace/tokenizer","ace/mode/scala_highlight_rules"],function(a,b,c){var d=a("../lib/oop"),e=a("./javascript").Mode,f=a("../tokenizer").Tokenizer,g=a("./scala_highlight_rules").ScalaHighlightRules,h=function(){e.call(this),this.$tokenizer=new f((new g).getRules())};d.inherits(h,e),function(){this.createWorker=function(a){return null}}.call(h.prototype),b.Mode=h}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(a,b,c){var d=a("../lib/oop"),e=a("./text").Mode,f=a("../tokenizer").Tokenizer,g=a("./javascript_highlight_rules").JavaScriptHighlightRules,h=a("./matching_brace_outdent").MatchingBraceOutdent,i=a("../range").Range,j=a("../worker/worker_client").WorkerClient,k=a("./behaviour/cstyle").CstyleBehaviour,l=a("./folding/cstyle").FoldMode,m=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.$behaviour=new k,this.foldingRules=new l};d.inherits(m,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(\s*)\/\//;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var h=new i(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);h.start.row=g,h.end.row=g,h.end.column=k[0].length,b.replace(h,k[1])}}else b.indentRows(c,d,"//")},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens,g=e.state;if(f.length&&f[f.length-1].type=="comment")return d;if(a=="start"||a=="regex_allowed"){var h=b.match(/^.*(?:\bcase\b.*\:|[\{\(\[])\s*$/);h&&(d+=c)}else if(a=="doc-start"){if(g=="start"||a=="regex_allowed")return"";var h=b.match(/^\s*(\/?)\*/);h&&(h[1]&&(d+=" "),d+="* ")}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=new j(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return b.attachToDocument(a.getDocument()),b.on("jslint",function(b){var c=[];for(var d=0;d<b.data.length;d++){var e=b.data[d];e&&c.push({row:e.line-1,column:e.character-1,text:e.reason,type:"warning",lint:e})}a.setAnnotations(c)}),b.on("narcissus",function(b){a.setAnnotations([b.data])}),b.on("terminate",function(){a.clearAnnotations()}),b}}.call(m.prototype),b.Mode=m}),ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/unicode","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("../lib/oop"),e=a("../lib/lang"),f=a("../unicode"),g=a("./doc_comment_highlight_rules").DocCommentHighlightRules,h=a("./text_highlight_rules").TextHighlightRules,i=function(){var a=e.arrayToMap("Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document".split("|")),b=e.arrayToMap("break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|const|yield|import|get|set".split("|")),c="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield",d=e.arrayToMap("__parent__|__count__|escape|unescape|with|__proto__".split("|")),h=e.arrayToMap("const|let|var|function".split("|")),i=e.arrayToMap("null|Infinity|NaN|undefined".split("|")),j=e.arrayToMap("class|enum|extends|super|export|implements|private|public|interface|package|protected|static".split("|")),k="["+f.packages.L+"\\$_]["+f.packages.L+f.packages.Mn+f.packages.Mc+f.packages.Nd+f.packages.Pc+"\\$_]*\\b",l="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)";this.$rules={start:[{token:"comment",regex:/\/\/.*$/},g.getStartRule("doc-start"),{token:"comment",merge:!0,regex:/\/\*/,next:"comment"},{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0[xX][0-9a-fA-F]+\b/},{token:"constant.numeric",regex:/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+k+")(\\.)(prototype)(\\.)("+k+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator","text"],regex:"("+k+")(\\.)(prototype)(\\.)("+k+")(\\s*)(=)(\\s*)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+k+")(\\.)("+k+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+k+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+k+")(\\.)("+k+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+k+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+k+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"constant.language.boolean",regex:/(?:true|false)\b/},{token:"keyword",regex:"(?:"+c+")\\b",next:"regex_allowed"},{token:["punctuation.operator","support.function"],regex:/(\.)(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:opzzzz|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:["punctuation.operator","support.function.dom"],regex:/(\.)(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:["punctuation.operator","support.constant"],regex:/(\.)(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|timeEnd|assert)\b/},{token:function(c){return a.hasOwnProperty(c)?"variable.language":d.hasOwnProperty(c)?"invalid.deprecated":h.hasOwnProperty(c)?"storage.type":b.hasOwnProperty(c)?"keyword":i.hasOwnProperty(c)?"constant.language":j.hasOwnProperty(c)?"invalid.illegal":c=="debugger"?"invalid.deprecated":"identifier"},regex:k},{token:"keyword.operator",regex:/!|\$|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|%=|\+=|\-=|&=|\^=|\b(?:in|instanceof|new|delete|typeof|void)/,next:"regex_allowed"},{token:"punctuation.operator",regex:/\?|\:|\,|\;|\./,next:"regex_allowed"},{token:"paren.lparen",regex:/[\[({]/,next:"regex_allowed"},{token:"paren.rparen",regex:/[\])}]/},{token:"keyword.operator",regex:/\/=?/,next:"regex_allowed"},{token:"comment",regex:/^#!.*$/},{token:"text",regex:/\s+/}],regex_allowed:[g.getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment_regex_allowed"},{token:"comment",regex:"\\/\\/.*$"},{token:"string.regexp",regex:"\\/",next:"regex",merge:!0},{token:"text",regex:"\\s+"},{token:"empty",regex:"",next:"start"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/\\w*",next:"start",merge:!0},{token:"string.regexp",regex:"[^\\\\/\\[]+",merge:!0},{token:"string.regexp.charachterclass",regex:"\\[",next:"regex_character_class",merge:!0},{token:"empty",regex:"",next:"start"}],regex_character_class:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp.charachterclass",regex:"]",next:"regex",merge:!0},{token:"string.regexp.charachterclass",regex:"[^\\\\\\]]+",merge:!0},{token:"empty",regex:"",next:"start"}],function_arguments:[{token:"variable.parameter",regex:k},{token:"punctuation.operator",regex:"[, ]+",merge:!0},{token:"punctuation.operator",regex:"$",merge:!0},{token:"empty",regex:"",next:"start"}],comment_regex_allowed:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"regex_allowed"},{token:"comment",merge:!0,regex:".+"}],comment:[{token:"comment",regex:".*?\\*\\/",merge:!0,next:"start"},{token:"comment",merge:!0,regex:".+"}],qqstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:'[^"\\\\]+',merge:!0},{token:"string",regex:"\\\\$",next:"qqstring",merge:!0},{token:"string",regex:'"|$',next:"start",merge:!0}],qstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:"[^'\\\\]+",merge:!0},{token:"string",regex:"\\\\$",next:"qstring",merge:!0},{token:"string",regex:"'|$",next:"start",merge:!0}]},this.embedRules(g,"doc-",[g.getEndRule("start")])};d.inherits(i,h),b.JavaScriptHighlightRules=i}),ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("../lib/oop"),e=a("./text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},{token:"comment.doc",merge:!0,regex:"\\s+"},{token:"comment.doc",merge:!0,regex:"TODO"},{token:"comment.doc",merge:!0,regex:"[^@\\*]+"},{token:"comment.doc",merge:!0,regex:"."}]}};d.inherits(f,e),f.getStartRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\/\\*(?=\\*)",next:a}},f.getEndRule=function(a){return{token:"comment.doc",merge:!0,regex:"\\*\\/",next:a}},b.DocCommentHighlightRules=f}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(a,b,c){var d=a("../range").Range,e=function(){};(function(){this.checkOutdent=function(a,b){return/^\s+$/.test(a)?/^\s*\}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(\s*\})/);if(!e)return 0;var f=e[1].length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(\s+)/);return b?b[1]:""}}).call(e.prototype),b.MatchingBraceOutdent=e}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour"],function(a,b,c){var d=a("../../lib/oop"),e=a("../behaviour").Behaviour,f=function(){this.add("braces","insertion",function(a,b,c,d,e){if(e=="{"){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"{"+g+"}",selection:!1}:{text:"{}",selection:[1,1]}}if(e=="}"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var k=d.$findOpeningBracket("}",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}else if(e=="\n"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="}"){var l=d.findMatchingBracket({row:h.row,column:h.column+1});if(!l)return null;var m=this.getNextLineIndent(a,i.substring(0,i.length-1),d.getTabString()),n=this.$getIndent(d.doc.getLine(l.row));return{text:"\n"+m+"\n"+n,selection:[1,m.length,1,m.length]}}}}),this.add("braces","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="{"){var g=d.doc.getLine(e.start.row),h=g.substring(e.end.column,e.end.column+1);if(h=="}")return e.end.column++,e}}),this.add("parens","insertion",function(a,b,c,d,e){if(e=="("){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"("+g+")",selection:!1}:{text:"()",selection:[1,1]}}if(e==")"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j==")"){var k=d.$findOpeningBracket(")",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="("){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h==")")return e.end.column++,e}}),this.add("brackets","insertion",function(a,b,c,d,e){if(e=="["){var f=c.getSelectionRange(),g=d.doc.getTextRange(f);return g!==""?{text:"["+g+"]",selection:!1}:{text:"[]",selection:[1,1]}}if(e=="]"){var h=c.getCursorPosition(),i=d.doc.getLine(h.row),j=i.substring(h.column,h.column+1);if(j=="]"){var k=d.$findOpeningBracket("]",{column:h.column+1,row:h.row});if(k!==null)return{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&f=="["){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=="]")return e.end.column++,e}}),this.add("string_dquotes","insertion",function(a,b,c,d,e){if(e=='"'||e=="'"){var f=e,g=c.getSelectionRange(),h=d.doc.getTextRange(g);if(h!=="")return{text:f+h+f,selection:!1};var i=c.getCursorPosition(),j=d.doc.getLine(i.row),k=j.substring(i.column-1,i.column);if(k=="\\")return null;var l=d.getTokens(g.start.row),m=0,n,o=-1;for(var p=0;p<l.length;p++){n=l[p],n.type=="string"?o=-1:o<0&&(o=n.value.indexOf(f));if(n.value.length+m>g.start.column)break;m+=l[p].value.length}if(!n||o<0&&n.type!=="comment"&&(n.type!=="string"||g.start.column!==n.value.length+m-1&&n.value.lastIndexOf(f)===n.value.length-1))return{text:f+f,selection:[1,1]};if(n&&n.type==="string"){var q=j.substring(i.column,i.column+1);if(q==f)return{text:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(a,b,c,d,e){var f=d.doc.getTextRange(e);if(!e.isMultiLine()&&(f=='"'||f=="'")){var g=d.doc.getLine(e.start.row),h=g.substring(e.start.column+1,e.start.column+2);if(h=='"')return e.end.column++,e}})};d.inherits(f,e),b.CstyleBehaviour=f}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(a,b,c){var d=a("../../lib/oop"),e=a("../../range").Range,f=a("./fold_mode").FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine(c),f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f[1])return this.openingBracketBlock(a,f[1],c,g);var h=a.getCommentFoldRange(c,g+f[0].length);return h.end.column-=2,h}if(b!=="markbeginend")return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f[0].length;if(f[2]){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f[1],i);if(!j)return;return j.column++,i.column--,e.fromPoints(j,i)}}}.call(g.prototype)}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(a,b,c){var d=a("../../range").Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine(c);return this.foldingStartMarker.test(d)?"start":b=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?"end":""},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/\S/,f=a.getLine(b),g=f.search(e);if(g==-1)return;var h=c||f.length,i=a.getLength(),j=b,k=b;while(++b<i){var l=a.getLine(b).search(e);if(l==-1)continue;if(l<=g)break;k=b}if(k>j){var m=a.getLine(k).length;return new d(j,h,k,m)}},this.openingBracketBlock=function(a,b,c,e,f){var g={row:c,column:e+1},h=a.$findClosingBracket(b,g,f);if(!h)return;var i=a.foldWidgets[h.row];return i==null&&(i=this.getFoldWidget(a,h.row)),i=="start"&&h.row>g.row&&(h.row--,h.column=a.getLine(h.row).length),d.fromPoints(g,h)}}).call(e.prototype)}),ace.define("ace/mode/scala_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(a,b,c){var d=a("../lib/oop"),e=a("../lib/lang"),f=a("./doc_comment_highlight_rules").DocCommentHighlightRules,g=a("./text_highlight_rules").TextHighlightRules,h=function(){var a=e.arrayToMap("case|default|do|else|for|if|match|while|throw|return|try|catch|finally|yield|abstract|class|def|extends|final|forSome|implicit|implicits|import|lazy|new|object|override|package|private|protected|sealed|super|this|trait|type|val|var|with".split("|")),b=e.arrayToMap("true|false".split("|")),c=e.arrayToMap("AbstractMethodError|AssertionError|ClassCircularityError|ClassFormatError|Deprecated|EnumConstantNotPresentException|ExceptionInInitializerError|IllegalAccessError|IllegalThreadStateException|InstantiationError|InternalError|NegativeArraySizeException|NoSuchFieldError|Override|Process|ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|SuppressWarnings|TypeNotPresentException|UnknownError|UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|InstantiationException|IndexOutOfBoundsException|ArrayIndexOutOfBoundsException|CloneNotSupportedException|NoSuchFieldException|IllegalArgumentException|NumberFormatException|SecurityException|Void|InheritableThreadLocal|IllegalStateException|InterruptedException|NoSuchMethodException|IllegalAccessException|UnsupportedOperationException|Enum|StrictMath|Package|Compiler|Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|Character|Boolean|StackTraceElement|Appendable|StringBuffer|Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|StackOverflowError|OutOfMemoryError|VirtualMachineError|ArrayStoreException|ClassCastException|LinkageError|NoClassDefFoundError|ClassNotFoundException|RuntimeException|Exception|ThreadDeath|Error|Throwable|System|ClassLoader|Cloneable|Class|CharSequence|Comparable|String|Object|Unit|Any|AnyVal|AnyRef|Null|ScalaObject|Singleton|Seq|Iterable|List|Option|Array|Char|Byte|Short|Int|Long|Nothing".split("|")),d=e.arrayToMap("".split("|"));this.$rules={start:[{token:"comment",regex:"\\/\\/.*$"},f.getStartRule("doc-start"),{token:"comment",merge:!0,regex:"\\/\\*",next:"comment"},{token:"string.regexp",regex:"[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)"},{token:"string",regex:'"""',next:"tstring"},{token:"string",regex:'"(?=.)',next:"string"},{token:"symbol.constant",regex:"'[\\w\\d_]+"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:function(e){return e=="this"?"variable.language":a.hasOwnProperty(e)?"keyword":c.hasOwnProperty(e)?"support.function":d.hasOwnProperty(e)?"support.function":b.hasOwnProperty(e)?"constant.language":"identifier"},regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],comment:[{token:"comment",regex:".*?\\*\\/",next:"start"},{token:"comment",merge:!0,regex:".+"}],string:[{token:"escape",regex:'\\\\"'},{token:"string",merge:!0,regex:'"',next:"start"},{token:"string.invalid",regex:'[^"\\\\]*$',next:"start"},{token:"string",regex:'[^"\\\\]+',merge:!0}],tstring:[{token:"string",regex:'"{3,5}',next:"start"},{token:"string",merge:!0,regex:".+?"}]},this.embedRules(f,"doc-",[f.getEndRule("start")])};d.inherits(h,g),b.ScalaHighlightRules=h})
\ No newline at end of file
diff --git a/web/public/stylesheets/leon.css b/web/public/stylesheets/leon.css
deleted file mode 100644
index 6496e35af..000000000
--- a/web/public/stylesheets/leon.css
+++ /dev/null
@@ -1,216 +0,0 @@
-html {
-    height: 100%;
-}
-
-body {
-    font-family: Arial, Helvetica, Sans-serif;
-    margin: 0px;
-    padding: 0px;
-    background-image: url('../images/lionbkg.png');
-    background-color: #FFFFFF;
-    background-repeat: no-repeat;
-    background-position: 25px 15px;
-    height: 100%;
-}
-
-h2 {
-    margin-top: 20px;
-    margin-bottom: 0px;
-}
-
-h3 {
-    margin-top: 0px;
-    margin-bottom: 0px;
-    font-weight: normal;
-}
-
-p, li {
-    text-align: justify;
-}
-
-a {
-    color: #1133CC;
-}
-
-a:link, a:visited {
-    text-decoration: none;
-}
-
-a:hover {
-    text-decoration: underline;
-}
-
-div.contentbox {
-    position: relative;
-    left: 320px;
-    padding: 0px;
-    margin: 0px;
-}
-
-div#title {
-    height: 80px;
-    width: 700px;
-    min-height: 80px;
-    max-height: 80px;
-    background-image: url('../images/leonlogo.png');
-    background-repeat: no-repeat;
-    background-position: right bottom;
-}
-
-div#leonmain {
-}
-
-div#console {
-    background-color: #EEEEEE;
-}
-
-div#contact {
-    position: absolute;
-    top: 410px; 
-    left: 25px;
-    width: 290px;
-}
-
-div#allcontent {
-    width: 100%;
-    height: 100%;
-    min-height: 100%;
-}
-
-div#poweredby {
-    position: fixed;
-    left: 0px;
-    bottom: 0px;
-    width: 1020px;
-    height: 50px;
-    text-align: center;
-    display: table-cell;
-    background-color: #FFFFFF;
-}
-
-div#beforefooter {
-    margin-bottom: 50px;
-}
-
-.smallnote {
-    font-size: 10px;
-}
-
-div#codecolumn {
-    float: left;
-    padding: 0px 10px;
-    width: 700px;
-}
-
-div#selectcolumn {
-    float: left;
-    max-width: 320px;
-    padding: 10px;
-}
-
-img {
-    border-style: none;
-    border-width: 0px;
-    margin: 0px;
-}
-
-hr {
-    border: none 0;
-    border-top: 1px dashed #000;
-    height: 1px;
-    margin-top: 0px;
-    margin-bottom: 10px;
-}
-
-ul {
-    list-style-type: square;
-}
-
-li {
-    margin-bottom: 5px;
-}
-
-#subcodebox {
-    margin: 460px 0px 0px 0px;
-}
-
-#powerflags {
-    margin: 0px 0px 5px 0px;
-    border: 1px solid #666666;
-    width: 700px;
-}
-
-#askbutton {
-    margin: 0px 0px 5px 0px;
-    background-color: transparent;
-    border: 1px solid #666666;
-    width: 700px;
-}
-
-td.date {
-    text-align:right;
-}
-
-div#codebox {
-    border-style: none;
-    background-color: rgba(255,255,255,0.8);
-    border: 1px dashed #333;
-    width: 700px;
-    height: 450px;
-    position: absolute;
-}
-
-div#codebox div.ace_gutter {
-    background-color: rgba(220,220,220,0.3) !important;
-}
-div#codebox div.ace_gutter_active_line {
-    background-color: rgba(220,220,220,0.5) !important;
-}
-
-textarea#consolebox {
-    font-family: "Lucida Console", monospace;
-    font-size: 11px;
-    width: 700px;
-    height: 250px;
-    border: none;
-    background-color: #EEEEEE;
-    padding: 0px;
-    margin: 0px; 
-    resize: vertical;
-}
-
-.consoletext {
-    font-family: "Lucida Console", monospace;                                                     
-    font-size: 11px;
-}
-
-#tabcontent div.tab {
-    display: none;    
-}
-
-#tabcontent div.tab.active {
-    display: block;
-}
-
-#tabcontent {
-    clear: both;
-    padding: 20px 10px 10px 10px;
-    border-left: 1px solid black;
-}
-
-#tabs a {
-    float: left;
-    padding: 10px;
-    border-right: 1px solid black;
-    border-bottom: 1px solid black;
-}
-
-#tabs a:first-child {
-    border-left: 1px solid black;
-}
-
-#tabs a.active {
-    background: white;
-    border-bottom: none;
-    border-top: 1px solid black;
-}
-- 
GitLab