diff --git a/app/assets/javascripts/hack_user_lastest_codes.js b/app/assets/javascripts/hack_user_lastest_codes.js new file mode 100644 index 000000000..dee720fac --- /dev/null +++ b/app/assets/javascripts/hack_user_lastest_codes.js @@ -0,0 +1,2 @@ +// Place all the behaviors and hooks related to the matching controller here. +// All this logic will automatically be available in application.js. diff --git a/app/assets/javascripts/hacks.js b/app/assets/javascripts/hacks.js new file mode 100644 index 000000000..dee720fac --- /dev/null +++ b/app/assets/javascripts/hacks.js @@ -0,0 +1,2 @@ +// Place all the behaviors and hooks related to the matching controller here. +// All this logic will automatically be available in application.js. diff --git a/app/assets/stylesheets/hack_user_lastest_codes.scss b/app/assets/stylesheets/hack_user_lastest_codes.scss new file mode 100644 index 000000000..37e16a552 --- /dev/null +++ b/app/assets/stylesheets/hack_user_lastest_codes.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the HackUserLastestCodes controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/assets/stylesheets/hacks.scss b/app/assets/stylesheets/hacks.scss new file mode 100644 index 000000000..e93f4cad4 --- /dev/null +++ b/app/assets/stylesheets/hacks.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the hacks controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index db72590ee..1bc2bad7d 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -395,6 +395,50 @@ class ApplicationController < ActionController::Base end end + # 处理返回非0就报错的请求 + def interface_post(uri, params, status, message) + begin + uid_logger_dubug("--uri_exec: params is #{params}, url is #{uri}") + uri = URI.parse(URI.encode(uri.strip)) + res = Net::HTTP.post_form(uri, params).body + uid_logger_dubug("--uri_exec: .....res is #{res}") + res = JSON.parse(res) + if (res && res['code'] != 0) + tip_exception(status, message) + else + res + end + rescue Exception => e + uid_logger("--uri_exec: exception #{e.message}") + raise Educoder::TipException.new("实训平台繁忙(繁忙等级:84)") + end + end + + # json格式请求 + def interface_json_post(uri, params, status, message) + begin + uid_logger_dubug("--uri_exec: params is #{params}, url is #{uri}") + uri = URI.parse(URI.encode(uri.strip)) + res = Net::HTTP.start(uri.host, uri.port) do |http| + req = Net::HTTP::Post.new(uri) + req['Content-Type'] = 'application/json' + req.body = params.to_json + http.request(req) + end + uid_logger_dubug("--uri_exec: .....res is #{res.body}") + res = JSON.parse(res.body) + if (res && res['code'] != 0) + tip_exception(status, message) + else + res + end + rescue Exception => e + uid_logger("--uri_exec: exception #{e.message}") + raise Educoder::TipException.new("服务器繁忙") + end + end + + # 适用与已经用url_safe编码后,回调字符串形式 def tran_base64_decode64(str) s_size = str.size % 4 diff --git a/app/controllers/hack_user_lastest_codes_controller.rb b/app/controllers/hack_user_lastest_codes_controller.rb new file mode 100644 index 000000000..bbe94233f --- /dev/null +++ b/app/controllers/hack_user_lastest_codes_controller.rb @@ -0,0 +1,170 @@ +class HackUserLastestCodesController < ApplicationController + before_action :require_login, except: [:listen_result] + before_action :find_my_hack, only: [:show, :code_debug, :code_submit, :update_code, :listen_result, :result] + before_action :update_user_hack_status, only: [:code_debug, :code_submit] + before_action :require_auth_identity, only: [:update_code] + before_action :require_manager_identity, only: [:update_code] + + def show + @my_hack.update_attribute(:status, 0) if @my_hack.status == 1 + end + + def update_code + @my_hack.update_attribute(:code, params[:code]) + end + + # 调试代码 + def code_debug + exec_mode = "debug" + error_status = 501 + error_msg = "debug_error" + oj_evaluate exec_mode, error_status, error_msg + render_ok + end + + # 提交 + def code_submit + exec_mode = "submit" + error_status = 502 + error_msg = "submit_error" + oj_evaluate exec_mode, error_status, error_msg + render_ok + end + + # 提交结果显示 + def result + return if @my_hack.status == 1 + + end + + # 接收中间件返回结果接口 + # 调试模式: status: 0 表示评测无错误,其他 表示错误(如编译出错,执行出错,超时等) + def listen_result + logger.info("###########listen_result:#{params}") + begin + ojEvaResult = JSON.parse(params[:ojEvaResult]) + testCase = ojEvaResult['testCase'] + # 只有编译出错时,才正则匹配错误行数 + error_line= + if params[:status] == "-4" + regular_match_error_line ojEvaResult['outPut'], @my_hack.hack.language + end + # debug 与submit 公用的参数 + + ds_params = {input: testCase['input'], output: testCase['output'], hack_id: @hack.id, + code: ojEvaResult['codeFileContent'], user_id: @my_hack.user_id, error_line: error_line, + status: ojEvaResult['status'], error_msg: ojEvaResult['outPut'], + execute_time: ojEvaResult['executeTime'], execute_memory: ojEvaResult['executeMem']} + ActiveRecord::Base.transaction do + # debug模式与submit模式 + if ojEvaResult['execMode'] == "debug" + save_debug_data ds_params + elsif ojEvaResult['execMode'] == "submit" + save_submit_data ds_params + end + # 评测完成后,还原评测中的状态 + @my_hack.update_attribute(:submit_status, 0) + end + render_ok + rescue Exception => e + logger.error("#########listen_result: #{e.message}") + end + + end + + private + def find_my_hack + @my_hack = HackUserLastestCode.find_by(identifier: params[:identifier]) + @hack = @my_hack.hack + end + + def oj_evaluate exec_mode, error_status, error_msg + request_url = "#{edu_setting('cloud_bridge')}/bridge/ojs/evaluate" + test_sets = + if exec_mode == "submit" + @hack.hack_sets.map{|set| {input: set.input, output: set.output, caseId: set.id}} + else + {input: params[:input]} + end + testCases = Base64.urlsafe_encode64(test_sets.to_json) + #codeFileContent = Base64.urlsafe_encode64(@my_hack.code) + debug_params = {execMode: exec_mode, + tpiID: @my_hack.identifier, + testCases: testCases, + platform: @my_hack.language, + codeFileContent: @my_hack.code, + timeLimit: @hack.time_limit, + sec_key: Time.now.to_i} + interface_json_post request_url, debug_params, error_status, error_msg + # 每次评测提交数增加 + @hack.increment!(:submit_num) + end + + # 正则错误行数 + def regular_match_error_line content, language + case language + when 'Java' + content.scan(/.java.\d+/).map{|s| s.match(/\d+/)[0].to_i}.min + when 'C', 'C++' + content.scan(/\d:\d+: error/).map{|s| s.match(/\d+/)[0]}.min + when 'Python' + content.scan(/line \d+/).map{|s| s.match(/\d+/)[0].to_i}.min + end + end + + # 存储debug数据 + def save_debug_data debug_params + if @my_hack.hack_user_debug.present? + @my_hack.hack_user_debug.update_attributes!(debug_params) + else + @my_hack.hack_user_debug.create!(debug_params) + end + end + + # 存储submit数据 + def save_submit_data submit_params + # 通关 + if submit_params[:status] == "0" + # 编程题已经发布,且之前未通关奖励积分 + if @hack.status == 1 && !@my_hack.passed? + reward_attrs = { container_id: game.id, container_type: 'Hack', score: @hack.score } + RewardGradeService.call(@my_hack.user, reward_attrs) + RewardExperienceService.call(@my_hack.user, reward_attrs) + # 评测完成更新通过数 + @hack.increment!(:pass_num) + @my_hack.update_attribute(:passed, true) + end + end + # 创建用户评测记录 + logger.info("###########submit_params:#{submit_params}") + query_index = @my_hack.hack_user_codes.count +1 + @my_hack.hack_user_codes.create!(submit_params.merge(query_index: query_index)) + end + + # 调试或提交改变状态 + def update_user_hack_status + @my_hack.update_attribute(:submit_status, 1) + end + + # 只有自己才能改动代码 + def require_identity + if @my_hack.user_id != current_user.id + tip_exception(403, "..") + end + end + + # 老师、自己、管理可以查看他人的编程题 + def require_manager_identity + unless current_user.certification_teacher? || admin_or_business? || @my_hack.user_id == current_user.id + tip_exception(403, "..") + end + end + + # 只有自己才能评测 + def require_auth_identity + unless @my_hack.user_id == current_user.id + tip_exception(403, "..") + end + end + +end diff --git a/app/controllers/hacks_controller.rb b/app/controllers/hacks_controller.rb new file mode 100644 index 000000000..9fa8e26e3 --- /dev/null +++ b/app/controllers/hacks_controller.rb @@ -0,0 +1,180 @@ +class HacksController < ApplicationController + before_action :require_login, except: [:index] + before_action :require_teacher_identity, only: [:create, :edit, :update] + before_action :require_auth_identity, only: [:update, :edit, :publish] + before_action :find_hack, only: [:edit, :update, :publish, :start] + + # 开启编程,如果第一次开启,创建一条记录,如果已经开启过的话,直接返回标识即可 + def start + # 未发布的编程题,只能作者、或管理员访问 + start_hack_auth + user_hack = @hack.hack_user_lastest_codes.mine(current_user.id) + identifier = + if user_hack.present? + user_hack.identifier + else + user_identifier = generate_identifier HackUserLastestCode, 12 + user_code = {user_id: current_user.id, code: @hack.code, + identifier: user_identifier, language: @hack.language} + @hack.hack_user_lastest_codes.create!(user_code) + user_identifier + end + render_ok(data: {identifier: identifier}) + end + + # 首页 + def index + # 筛选过滤与排序 + params_filter_or_order + # 我解决的编程题数 + user_codes = HackUserLastestCode.mine(current_user).passed.joins(:hack) + @simple_count = user_codes.where(hacks: {difficult: 1}).count + @medium_count = user_codes.where(hacks: {difficult: 2}).count + @diff_count = user_codes.where(hacks: {difficult: 3}).count + @pass_count = @simple_count + @medium_count + @diff_count + + @hacks_count = @hacks.count("hacks.id") + @hacks = paginate @hacks + end + + def create + begin + logger.info("##########{hack_params}") + hack = Hack.new(hack_params) + ActiveRecord::Base.transaction do + hack.user_id = current_user.id + hack.identifier = generate_identifier Hack, 8 + hack.save! + # 创建测试集与代码 + hack.hack_sets.create!(hack_sets_params) + hack.hack_codes.create!(hack_code_params) + end + render_ok({identifier: hack.identifier}) + rescue Exception => e + logger.error("########create_hack_error: #{e.message}") + render_error("创建失败") + end + end + + def update + begin + ActiveRecord::Base.transaction do + @hack.update_attributes!(hack_params) + set_ids = @hack.hack_sets.pluck(:id) + # 更新 + param_update_sets params[:update_hack_sets], set_ids + # 新建 + @hack.hack_sets.create!(hack_sets_params) + # 更新代码 + @hack.hack_codes.create!(hack_code_params) + end + render_ok + rescue Exception => e + logger.error("####update_hack_error: #{e.message}") + render_error("更新失败") + end + end + + # 发布功能 + def publish + @hack.update_attribute(:status, 1) + render_ok + end + + # 发布列表 + def unpulished_list + limit = params[:limit] || 16 + page = params[:page] || 1 + hacks = Hack.where(user_id: current_user.id, status: 0) + @hacks_count = hacks.count + @hacks = hacks.includes(:hack_sets).page(page).per(limit) + end + + def edit;end + + private + # 实名认证老师,管理员与运营人员权限 + def require_teacher_identity + unless current_user.certification_teacher? || admin_or_business? + tip_exception(403, "..") + end + end + + # 只有自己,或者管理员才能更新 + def require_auth_identity + unless @hack.user_id == current_user.id || admin_or_business? + tip_exception(403, "..") + end + end + + def find_hack + @hack = Hack.find_by_identifier(params[:identifier]) + end + + def hack_params + params.require(:hack).permit(:name, :description, :difficult, :category, :open_or_not, :time_limit, :score) + end + + def hack_sets_params + params.permit(hack_sets: [:input, :output, :position])[:hack_sets] + end + + def hack_code_params + params.require(:hack_codes).permit(:code, :language) + end + + def publish_params + params.require(:hack).permit(:difficult, :category, :open_or_not, :time_limit, :score) + end + + def param_update_sets sets, all_sets_id + delete_set_ids = all_sets_id - sets.map{|set|set[:id]} + @hack.hack_sets.where(id: delete_set_ids).destroy_all + sets.each do |set| + if all_sets_id.include?(set[:id]) + update_attrs = {input: set[:input], output: set[:output], position: set[:position]} + @hack.hack_sets.find_by!(id: set[:id]).update_attributes(update_attrs) + end + end + end + + def params_filter_or_order + # 如果有来源,就不管发布公开私有 + select_sql = "hacks.*, if(hacks.hack_user_lastest_codes_count=0, 0, hacks.pass_num/hacks.hack_user_lastest_codes_count) passed_rate" + if params[:come_from] + hacks = Hack.select(select_sql).mine(current_user.id) + else + hacks = Hack.select(select_sql).published.opening + end + # 搜索 + if params[:search] + hacks = hacks.where("name like ?", "%#{params[:search]}%") + end + # 难度 + if params[:difficult] + hacks = hacks.where(difficult: params[:difficult]) + end + # 状态 + if params[:status] + user_hacks = HackUserLastestCode.where(user_id: current_user.id) + if params[:status].to_i == -1 + if user_hacks.present? + hacks = hacks.where.not(id: user_hacks.pluck(:hack_id)) + end + else + hacks = hacks.joins(:hack_user_lastest_code).where(hack_user_lastest_code: {status: params[:status]}) + end + end + # 排序 + sort_by = params[:sort_by] || "hack_user_lastest_codes_count" + sort_direction = params[:sort_direction] || "desc" + @hacks = hacks.order("#{sort_by} #{sort_direction}") + end + + def start_hack_auth + return true if @hack == 1 + require_auth_identity + end + + +end diff --git a/app/controllers/shixuns_controller.rb b/app/controllers/shixuns_controller.rb index 9077192cf..30f6d1bd3 100644 --- a/app/controllers/shixuns_controller.rb +++ b/app/controllers/shixuns_controller.rb @@ -489,10 +489,7 @@ class ShixunsController < ApplicationController ShixunMirrorRepository.create(:shixun_id => @shixun.id, :mirror_repository_id => mirror) end end - logger.info("#########shixun_params#{shixun_params}") @shixun.update_attributes(shixun_params) - logger.info("##########shixun_info_params: #{shixun_info_params}") - logger.info("##########params[:shixun_info][:evaluate_script]: #{params[:shixun_info][:evaluate_script]}") @shixun.shixun_info.update_attributes(shixun_info_params) @shixun.shixun_schools.delete_all # scope_partment: 高校的名称 diff --git a/app/helpers/hack_user_lastest_codes_helper.rb b/app/helpers/hack_user_lastest_codes_helper.rb new file mode 100644 index 000000000..13350a8f6 --- /dev/null +++ b/app/helpers/hack_user_lastest_codes_helper.rb @@ -0,0 +1,2 @@ +module HackUserLastestCodesHelper +end diff --git a/app/helpers/hacks_helper.rb b/app/helpers/hacks_helper.rb new file mode 100644 index 000000000..13f5ac76d --- /dev/null +++ b/app/helpers/hacks_helper.rb @@ -0,0 +1,2 @@ +module HacksHelper +end diff --git a/app/models/hack.rb b/app/models/hack.rb new file mode 100644 index 000000000..1256aa53f --- /dev/null +++ b/app/models/hack.rb @@ -0,0 +1,38 @@ +class Hack < ApplicationRecord + # status: 0 未发布; 1已发布 + # diffcult: 难度 1:简单;2:中等; 3:困难 + # 编程题 + validates_length_of :name, maximum: 60 + # 测试集 + has_many :hack_sets, ->{order("position asc")}, :dependent => :destroy + # 代码 + has_many :hack_codes, :dependent => :destroy + has_many :hack_user_lastest_codes, :dependent => :destroy + belongs_to :user + + scope :published, -> { where(status: 1) } + scope :opening, -> {where(open_or_not: 1)} + scope :mine, -> (author_id){ where(user_id: author_id) } + + def language + if hack_codes.count == 1 + hack_codes.first.language + else + hack_codes.pluck(:language).first + end + end + + def code + if hack_codes.count == 1 + tran_base64_decode64(hack_codes.first.code) + else + tran_base64_decode64(hack_codes.pluck(:code)) + end + end + + # 用于用户调试的第一个测试用例 + def input_test_case + hack_sets.first&.input + end + +end diff --git a/app/models/hack_code.rb b/app/models/hack_code.rb new file mode 100644 index 000000000..19de5e4a4 --- /dev/null +++ b/app/models/hack_code.rb @@ -0,0 +1,3 @@ +class HackCode < ApplicationRecord + # 编程题代码相关 +end diff --git a/app/models/hack_set.rb b/app/models/hack_set.rb new file mode 100644 index 000000000..d0518a5b4 --- /dev/null +++ b/app/models/hack_set.rb @@ -0,0 +1,4 @@ +class HackSet < ApplicationRecord + # 编程题测试集 + belongs_to :hack +end diff --git a/app/models/hack_user_code.rb b/app/models/hack_user_code.rb new file mode 100644 index 000000000..d9d2dff77 --- /dev/null +++ b/app/models/hack_user_code.rb @@ -0,0 +1,4 @@ +class HackUserCode < ApplicationRecord + # 用户编程题的信息 + belongs_to :hack +end diff --git a/app/models/hack_user_debug.rb b/app/models/hack_user_debug.rb new file mode 100644 index 000000000..d44081b52 --- /dev/null +++ b/app/models/hack_user_debug.rb @@ -0,0 +1,4 @@ +class HackUserDebug < ApplicationRecord + belongs_to :hack + belongs_to :hack_user_lastest_code +end diff --git a/app/models/hack_user_lastest_code.rb b/app/models/hack_user_lastest_code.rb new file mode 100644 index 000000000..0a9e1131c --- /dev/null +++ b/app/models/hack_user_lastest_code.rb @@ -0,0 +1,13 @@ +class HackUserLastestCode < ApplicationRecord + # passed: 用户之前评测是否通过 + # status: 最新评测状态: -1测试用例结果不匹配; 0: 评测通过; ;2 评测超时;3 创建pod失败; 4 编译失败;5 执行失败 + # submit_status: 0: 可以评测, 1:评测中 + # 编程题最新代码 + belongs_to :hack, counter_cache: true + belongs_to :user + has_many :hack_user_codes, dependent: :destroy + has_one :hack_user_debug + scope :mine, ->(author_id){ find_by(user_id: author_id) } + scope :passed, -> {where(status: 1)} + +end diff --git a/app/models/user.rb b/app/models/user.rb index f617b94b9..74d9b11d2 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -149,6 +149,9 @@ class User < ApplicationRecord # 客户管理 has_many :partner_managers, dependent: :destroy + # OJ编程题 + has_many :hacks, dependent: :destroy + has_many :hack_user_lastest_codes, dependent: :destroy # Groups and active users scope :active, lambda { where(status: STATUS_ACTIVE) } @@ -696,10 +699,6 @@ class User < ApplicationRecord LimitForbidControl::UserLogin.new(self).clear end - def from_sub_site? - laboratory_id.present? && laboratory_id != 1 - end - protected def validate_password_length # 管理员的初始密码是5位 diff --git a/app/views/hack_user_lastest_codes/show.json.jbuilder b/app/views/hack_user_lastest_codes/show.json.jbuilder new file mode 100644 index 000000000..370797750 --- /dev/null +++ b/app/views/hack_user_lastest_codes/show.json.jbuilder @@ -0,0 +1,12 @@ +json.hack do + json.(@hack, :difficult, :time_limit, :description, :score, :identifier) + json.language @hack.language + json.username @hack.user.real_name + json.code @my_hack.code + json.pass_count @hack.pass_num + json.submit_count @hack.submit_num +end + +json.test_case do + json.input @hack.input_test_case +end \ No newline at end of file diff --git a/app/views/hacks/edit.json.jbuilder b/app/views/hacks/edit.json.jbuilder new file mode 100644 index 000000000..95124666f --- /dev/null +++ b/app/views/hacks/edit.json.jbuilder @@ -0,0 +1,13 @@ +# 编程内容 +json.(@hack, :name, :description, :language, :code) + +# 代码 +json.language @hack.language +json.code @hack.code + +# 测试集 +json.hack_sets do + json.array! @hack.hack_sets do |set| + json.(set, :id, :input, :output, :position) + end +end diff --git a/app/views/hacks/index.json.jbuilder b/app/views/hacks/index.json.jbuilder new file mode 100644 index 000000000..c86884a41 --- /dev/null +++ b/app/views/hacks/index.json.jbuilder @@ -0,0 +1,13 @@ +json.top_data do + json.passed_count @pass_count + json.simple_count @simple_count + json.medium_count @medium_count + json.diff_count @diff_count +end + +json.hacks_count @hacks_count +json.hacks_list do + json.array! @hacks do |hack| + json.(hack,:identifier, :name , :hack_user_lastest_codes_count, :difficult, :passed_rate, :category) + end +end \ No newline at end of file diff --git a/app/views/hacks/unpulished_list.json.jbuilder b/app/views/hacks/unpulished_list.json.jbuilder new file mode 100644 index 000000000..cde4b3696 --- /dev/null +++ b/app/views/hacks/unpulished_list.json.jbuilder @@ -0,0 +1,5 @@ +json.hacks_count @hacks_count +json.hacks @hacks do |hack| + json.(hack, :name, :difficult, :updated_at) + json.sets_count hack.hack_sets.count +end \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index efc08d901..4094463f8 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -35,6 +35,28 @@ Rails.application.routes.draw do end end + resources :hacks, path: :problems, param: :identifier do + collection do + get :unpulished_list + end + member do + post :publish + get :start + get :result + end + end + + resources :hack_user_lastest_codes, path: :myproblems, param: :identifier do + member do + post :update_code + get :code_debug + get :code_submit + match :listen_result, :via => [:get, :post] + end + + end + + resources :tem_tests # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html # @@ -64,7 +86,7 @@ Rails.application.routes.draw do resources :shixuns, only: [:index] resources :projects, only: [:index] resources :subjects, only: [:index] - # resources :question_banks, only: [:index] + # hacks :question_banks, only: [:index] resource :experience_records, only: [:show] resource :grade_records, only: [:show] resource :watch, only: [:create, :destroy] diff --git a/db/migrate/20191111082252_create_hacks.rb b/db/migrate/20191111082252_create_hacks.rb new file mode 100644 index 000000000..c9508319e --- /dev/null +++ b/db/migrate/20191111082252_create_hacks.rb @@ -0,0 +1,20 @@ +class CreateHacks < ActiveRecord::Migration[5.2] + def change + create_table :hacks do |t| + t.string :name + t.integer :difficult + t.integer :category + t.integer :status, default: 0 + t.boolean :open_or_not, default: true + t.integer :time_limit + t.integer :memory_limit + t.string :identifier + t.references :user + t.text :description + + t.timestamps + end + + add_index :hacks, :identifier, unique: true + end +end diff --git a/db/migrate/20191111083528_create_hack_codes.rb b/db/migrate/20191111083528_create_hack_codes.rb new file mode 100644 index 000000000..7322a8de8 --- /dev/null +++ b/db/migrate/20191111083528_create_hack_codes.rb @@ -0,0 +1,11 @@ +class CreateHackCodes < ActiveRecord::Migration[5.2] + def change + create_table :hack_codes do |t| + t.references :hack + t.text :code + t.string :language + + t.timestamps + end + end +end diff --git a/db/migrate/20191111100954_create_hack_sets.rb b/db/migrate/20191111100954_create_hack_sets.rb new file mode 100644 index 000000000..e4d710137 --- /dev/null +++ b/db/migrate/20191111100954_create_hack_sets.rb @@ -0,0 +1,13 @@ +class CreateHackSets < ActiveRecord::Migration[5.2] + def change + create_table :hack_sets do |t| + t.references :hack + t.text :input + t.text :output + t.integer :position + + t.timestamps + end + add_index :hack_sets, [:hack_id, :position], unique: true + end +end diff --git a/db/migrate/20191111101536_create_hack_user_codes.rb b/db/migrate/20191111101536_create_hack_user_codes.rb new file mode 100644 index 000000000..3aeded9a6 --- /dev/null +++ b/db/migrate/20191111101536_create_hack_user_codes.rb @@ -0,0 +1,18 @@ +class CreateHackUserCodes < ActiveRecord::Migration[5.2] + def change + create_table :hack_user_codes do |t| + t.references :user + t.references :hack + t.text :code + t.text :output + t.text :error_msg + t.integer :error_line + t.integer :position + t.integer :status, default: 0 + t.integer :query_index + t.timestamps + end + + add_index :hack_user_codes, [:user_id, :hack_id, :query_index], unique: true + end +end diff --git a/db/migrate/20191112010611_create_hack_user_lastest_codes.rb b/db/migrate/20191112010611_create_hack_user_lastest_codes.rb new file mode 100644 index 000000000..9c5227a54 --- /dev/null +++ b/db/migrate/20191112010611_create_hack_user_lastest_codes.rb @@ -0,0 +1,12 @@ +class CreateHackUserLastestCodes < ActiveRecord::Migration[5.2] + def change + create_table :hack_user_lastest_codes do |t| + t.references :user + t.references :hack + t.text :code + + t.timestamps + end + add_index :hack_user_lastest_codes, [:user_id, :hack_id], unique: true + end +end diff --git a/db/migrate/20191112012007_create_hack_user_debugs.rb b/db/migrate/20191112012007_create_hack_user_debugs.rb new file mode 100644 index 000000000..8027c3dc6 --- /dev/null +++ b/db/migrate/20191112012007_create_hack_user_debugs.rb @@ -0,0 +1,14 @@ +class CreateHackUserDebugs < ActiveRecord::Migration[5.2] + def change + create_table :hack_user_debugs do |t| + t.references :user + t.references :hack + t.text :output + t.text :input + t.text :error_msg + t.integer :error_line + + t.timestamps + end + end +end diff --git a/db/migrate/20191112023111_add_defualt_for_hacks.rb b/db/migrate/20191112023111_add_defualt_for_hacks.rb new file mode 100644 index 000000000..41c1a71fa --- /dev/null +++ b/db/migrate/20191112023111_add_defualt_for_hacks.rb @@ -0,0 +1,7 @@ +class AddDefualtForHacks < ActiveRecord::Migration[5.2] + def change + change_column :hacks, :status, :integer, :default => 0 + change_column :hacks, :open_or_not, :boolean, :default => true + change_column :hack_user_codes, :status, :integer, :default => 0 + end +end diff --git a/db/migrate/20191112100820_add_score_for_hacks.rb b/db/migrate/20191112100820_add_score_for_hacks.rb new file mode 100644 index 000000000..b4a3657f7 --- /dev/null +++ b/db/migrate/20191112100820_add_score_for_hacks.rb @@ -0,0 +1,5 @@ +class AddScoreForHacks < ActiveRecord::Migration[5.2] + def change + add_column :hacks, :score, :integer + end +end diff --git a/db/migrate/20191113061866_add_status_end_time_for_hack_user_lastest_code.rb b/db/migrate/20191113061866_add_status_end_time_for_hack_user_lastest_code.rb new file mode 100644 index 000000000..fb8fe8a61 --- /dev/null +++ b/db/migrate/20191113061866_add_status_end_time_for_hack_user_lastest_code.rb @@ -0,0 +1,27 @@ +class AddStatusEndTimeForHackUserLastestCode < ActiveRecord::Migration[5.2] + def change + add_column :hack_user_lastest_codes, :passed, :boolean, :default => false + add_column :hack_user_lastest_codes, :pass_time, :timestamp + add_column :hack_user_lastest_codes, :identifier, :string + add_column :hack_user_lastest_codes, :language, :string + add_column :hack_user_debugs, :hack_user_lastest_code_id, :integer + add_column :hacks, :hack_user_lastest_codes_count, :integer, :default => 0 + add_column :hacks, :pass_num, :integer, :default => 0 + add_column :hacks, :submit_num, :integer, :default => 0 + add_column :hack_user_codes, :input, :text + add_index :hack_user_lastest_codes, :user_id, name: "user_index" + add_index :hack_user_lastest_codes, :hack_id, name: "hack_index" + add_index :hack_user_lastest_codes, :identifier, unique: true + add_index :hack_user_debugs, :hack_user_lastest_code_id, unique: true + add_column :hack_user_lastest_codes, :submit_status, :integer, :default => 0 + add_column :hack_user_lastest_codes, :status, :integer + add_column :hack_user_lastest_codes, :passed_time, :timestamp + add_column :hack_user_debugs, :status, :integer + + add_column :hack_user_codes, :execute_time, :integer + add_column :hack_user_codes, :execute_memory, :integer + add_column :hack_user_debugs, :execute_time, :integer + add_column :hack_user_debugs, :execute_memory, :integer + + end +end diff --git a/db/migrate/20191118113842_add_hack_user_lastest_code_id_for_hack_user_code.rb b/db/migrate/20191118113842_add_hack_user_lastest_code_id_for_hack_user_code.rb new file mode 100644 index 000000000..a3602d402 --- /dev/null +++ b/db/migrate/20191118113842_add_hack_user_lastest_code_id_for_hack_user_code.rb @@ -0,0 +1,7 @@ +class AddHackUserLastestCodeIdForHackUserCode < ActiveRecord::Migration[5.2] + def change + add_column :hack_user_codes, :hack_user_lastest_code_id, :integer + add_index :hack_user_codes, :hack_user_lastest_code_id + + end +end diff --git a/public/javascripts/media/clappr.js b/public/javascripts/media/clappr.js index d16774aa2..bdb6ba786 100644 --- a/public/javascripts/media/clappr.js +++ b/public/javascripts/media/clappr.js @@ -29512,7 +29512,7 @@ var Player = function (_BaseObject) { * @prop {boolean} controls * enabled/disables displaying controls * @prop {boolean} crossOrigin - * enables cross-origin capability for media-resources + * enables cross-origin capability for media-hacks * @prop {boolean} playInline * enables in-line video elements * @prop {boolean} audioOnly diff --git a/public/react/public/js/monaco/vs/editor/editor.main.js b/public/react/public/js/monaco/vs/editor/editor.main.js index 6a843e1a9..dc575e78e 100755 --- a/public/react/public/js/monaco/vs/editor/editor.main.js +++ b/public/react/public/js/monaco/vs/editor/editor.main.js @@ -5,7 +5,7 @@ * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt *-----------------------------------------------------------*/ (function(){ -var e,t=["exports","require","vs/base/common/lifecycle","vs/editor/common/core/range","vs/nls!vs/editor/editor.main","vs/nls","vs/base/common/strings","vs/base/browser/dom","vs/css!vs/editor/editor.main","vs/base/common/event","vs/base/common/errors","vs/editor/browser/editorExtensions","vs/editor/common/core/position","vs/base/common/winjs.base","vs/base/common/async","vs/platform/instantiation/common/instantiation","vs/platform/theme/common/themeService","vs/editor/common/modes","vs/base/common/platform","vs/platform/contextkey/common/contextkey","vs/editor/common/editorContextKeys","vs/editor/common/core/selection","vs/platform/theme/common/colorRegistry","vs/editor/browser/editorBrowser","vs/editor/common/model","vs/base/common/arrays","vs/base/browser/fastDomNode","vs/base/common/color","vs/base/common/objects","vs/editor/common/model/textModel","vs/base/browser/browser","vs/base/common/uri","vs/editor/browser/services/codeEditorService","vs/base/common/types","vs/platform/commands/common/commands","vs/editor/common/view/editorColorRegistry","vs/editor/browser/view/viewPart","vs/platform/notification/common/notification","vs/editor/common/controller/cursorCommon","vs/base/common/keyCodes","vs/base/common/cancellation","vs/editor/common/modes/languageConfigurationRegistry","vs/base/browser/mouseEvent","vs/base/common/scrollable","vs/platform/actions/common/actions","vs/platform/registry/common/platform","vs/base/browser/ui/widget","vs/editor/common/config/editorOptions","vs/editor/common/services/modelService","vs/platform/keybinding/common/keybinding","vs/base/common/paths","vs/platform/configuration/common/configuration","vs/base/browser/ui/aria/aria","vs/editor/common/core/editOperation","vs/editor/common/controller/cursorEvents","vs/base/browser/ui/scrollbar/scrollableElement","vs/base/browser/builder","vs/base/browser/keyboardEvent","vs/editor/common/modes/languageConfiguration","vs/editor/browser/view/dynamicViewOverlay","vs/editor/common/modes/nullMode","vs/base/common/network","vs/platform/opener/common/opener","vs/editor/common/viewModel/viewModel","vs/editor/common/services/modeService","vs/editor/browser/config/configuration","vs/editor/common/editorCommon","vs/base/common/actions","vs/editor/browser/core/editorState","vs/base/browser/ui/actionbar/actionbar","vs/base/common/map","vs/editor/common/services/editorWorkerService","vs/platform/storage/common/storage","vs/base/browser/globalMouseMoveMonitor","vs/base/browser/touch","vs/platform/markers/common/markers","vs/editor/common/commands/replaceCommand","vs/platform/contextview/browser/contextView","vs/editor/common/view/viewEvents","vs/base/common/htmlContent","vs/editor/common/viewModel/viewEventHandler","vs/base/parts/tree/browser/treeDefaults","vs/platform/configuration/common/configurationRegistry","vs/editor/common/core/characterClassifier","vs/editor/standalone/common/standaloneThemeService","vs/base/common/assert","vs/platform/telemetry/common/telemetry","vs/base/browser/event","vs/editor/common/view/renderingContext","vs/editor/common/controller/wordCharacterClassifier","vs/base/browser/ui/sash/sash","vs/editor/common/modes/supports","vs/platform/progress/common/progress","vs/base/parts/quickopen/common/quickOpen","vs/editor/common/core/uint","vs/editor/common/core/token","vs/editor/common/viewLayout/viewLineRenderer","vs/platform/keybinding/common/keybindingsRegistry","vs/editor/common/config/editorZoom","vs/editor/common/core/lineTokens","vs/editor/common/model/wordHelper","vs/editor/contrib/suggest/suggest","vs/base/common/filters","vs/platform/theme/common/styler","vs/editor/browser/widget/codeEditorWidget","vs/editor/common/modes/supports/richEditBrackets","vs/platform/instantiation/common/serviceCollection","vs/editor/common/services/resolverService","vs/editor/common/view/minimapCharRenderer","vs/editor/contrib/folding/foldingRanges","vs/editor/contrib/snippet/snippetParser","vs/base/common/decorators","vs/editor/common/core/stringBuilder","vs/editor/browser/view/viewLayer","vs/base/browser/ui/scrollbar/scrollbarArrow","vs/base/browser/ui/inputbox/inputBox","vs/editor/browser/editorDom","vs/platform/log/common/log","vs/base/common/severity","vs/base/parts/quickopen/browser/quickOpenModel","vs/base/common/diff/diff","vs/editor/contrib/markdown/markdownRenderer","vs/editor/common/config/fontInfo","vs/editor/contrib/referenceSearch/referencesModel","vs/editor/common/modes/modesRegistry","vs/editor/common/viewLayout/lineDecorations","vs/editor/common/config/commonEditorConfig","vs/editor/browser/services/bulkEditService","vs/editor/standalone/browser/simpleServices","vs/editor/common/viewModel/prefixSumComputer","vs/base/common/idGenerator","vs/base/browser/htmlContentRenderer","vs/base/common/iterator","vs/editor/browser/controller/coreCommands","vs/editor/browser/viewParts/glyphMargin/glyphMargin","vs/editor/contrib/snippet/snippetController2","vs/editor/common/model/textModelSearch","vs/editor/contrib/codeAction/codeActionTrigger","vs/base/browser/ui/highlightedlabel/highlightedLabel","vs/editor/common/controller/cursorTypeOperations","vs/editor/common/controller/cursorWordOperations","vs/editor/browser/widget/embeddedCodeEditorWidget","vs/editor/contrib/find/findModel","vs/editor/contrib/message/messageController","vs/editor/contrib/referenceSearch/peekViewWidget","vs/editor/standalone/browser/quickOpen/editorQuickOpen","vs/platform/list/browser/listService","vs/platform/workspace/common/workspace","vs/editor/contrib/referenceSearch/referencesController","vs/editor/contrib/comment/blockCommentCommand","vs/base/browser/ui/findinput/findInputCheckboxes","vs/editor/common/standalone/standaloneBase","vs/editor/common/view/overviewZoneManager","vs/base/common/glob","vs/platform/keybinding/common/keybindingResolver","vs/base/parts/tree/browser/treeImpl","vs/css!vs/editor/contrib/goToDefinition/goToDefinitionMouse","vs/base/browser/ui/scrollbar/scrollbarState","vs/base/browser/ui/scrollbar/abstractScrollbar","vs/editor/common/editorAction","vs/base/common/worker/simpleWorker","vs/base/common/resources","vs/base/common/keybindingLabels","vs/editor/browser/viewParts/margin/margin","vs/editor/browser/controller/textAreaState","vs/editor/browser/controller/textAreaInput","vs/base/common/linkedList","vs/editor/common/model/pieceTreeTextBuffer/pieceTreeBase","vs/editor/contrib/folding/syntaxRangeProvider","vs/editor/contrib/goToDefinition/clickLinkGesture","vs/editor/common/commands/shiftCommand","vs/editor/common/controller/cursorMoveOperations","vs/editor/contrib/colorPicker/color","vs/editor/contrib/colorPicker/colorDetector","vs/editor/contrib/goToDefinition/goToDefinition","vs/editor/contrib/parameterHints/provideSignatureHelp","vs/editor/common/controller/cursorDeleteOperations","vs/editor/contrib/hover/hoverOperation","vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode","vs/editor/contrib/wordOperations/wordOperations","vs/editor/contrib/hover/hoverWidgets","vs/editor/common/controller/cursorMoveCommands","vs/editor/common/modes/textToHtmlTokenizer","vs/editor/browser/viewParts/lines/viewLine","vs/editor/browser/controller/mouseTarget","vs/editor/browser/widget/diffNavigator","vs/editor/browser/viewParts/lineNumbers/lineNumbers","vs/editor/common/services/resourceConfiguration","vs/editor/browser/widget/diffEditorWidget","vs/editor/common/services/editorWorkerServiceImpl","vs/editor/standalone/common/monarch/monarchCommon","vs/editor/common/viewModel/splitLinesCollection","vs/editor/contrib/zoneWidget/zoneWidget","vs/base/browser/iframe","vs/platform/clipboard/common/clipboardService","vs/platform/uriDisplay/common/uriDisplay","vs/editor/contrib/find/findController","vs/base/browser/ui/contextview/contextview","vs/editor/contrib/referenceSearch/referencesWidget","vs/base/browser/ui/iconLabel/iconLabel","vs/editor/contrib/goToDefinition/goToDefinitionCommands","vs/base/common/labels","vs/editor/standalone/browser/standaloneServices","vs/base/browser/ui/countBadge/countBadge","vs/editor/common/modes/supports/tokenization","vs/editor/common/modes/tokenizationRegistry","vs/css!vs/base/browser/ui/findinput/findInput","vs/css!vs/base/browser/ui/findinput/findInputCheckboxes","vs/css!vs/base/browser/ui/iconLabel/iconlabel","vs/editor/browser/viewParts/lines/rangeUtil","vs/editor/common/view/viewContext","vs/editor/common/view/viewEventDispatcher","vs/editor/editor.api","vs/css!vs/base/browser/ui/inputbox/inputBox","vs/css!vs/base/browser/ui/keybindingLabel/keybindingLabel","vs/editor/common/viewLayout/viewLinesViewportData","vs/editor/common/viewLayout/whitespaceComputer","vs/editor/common/viewLayout/linesLayout","vs/css!vs/base/browser/ui/list/list","vs/editor/common/model/mirrorTextModel","vs/editor/common/services/editorSimpleWorker","vs/css!vs/base/browser/ui/menu/menu","vs/css!vs/base/browser/ui/progressbar/progressbar","vs/base/browser/ui/progressbar/progressbar","vs/editor/browser/viewParts/contentWidgets/contentWidgets","vs/editor/browser/viewParts/decorations/decorations","vs/css!vs/base/browser/ui/sash/sash","vs/editor/browser/viewParts/linesDecorations/linesDecorations","vs/base/common/stopwatch","vs/editor/browser/viewParts/marginDecorations/marginDecorations","vs/editor/browser/viewParts/overlayWidgets/overlayWidgets","vs/editor/browser/viewParts/overviewRuler/overviewRuler","vs/editor/browser/viewParts/viewZones/viewZones","vs/css!vs/base/browser/ui/scrollbar/media/scrollbars","vs/editor/common/viewLayout/viewLayout","vs/editor/common/viewModel/viewModelDecorations","vs/editor/contrib/caretOperations/moveCaretCommand","vs/base/browser/ui/list/rangeMap","vs/editor/contrib/codeAction/codeActionWidget","vs/editor/contrib/colorPicker/colorPickerModel","vs/base/browser/ui/list/listView","vs/editor/contrib/comment/lineCommentCommand","vs/editor/contrib/dnd/dragAndDropCommand","vs/editor/contrib/find/findState","vs/editor/contrib/find/replaceAllCommand","vs/editor/contrib/find/replacePattern","vs/base/parts/tree/browser/treeView","vs/editor/contrib/folding/foldingModel","vs/editor/contrib/folding/hiddenRangeModel","vs/css!vs/base/parts/quickopen/browser/quickopen","vs/editor/contrib/folding/intializingRangeProvider","vs/editor/contrib/format/formattingEdit","vs/css!vs/base/parts/tree/browser/tree","vs/base/browser/ui/list/rowCache","vs/css!vs/editor/browser/controller/textAreaHandler","vs/editor/contrib/hover/modesGlyphHover","vs/editor/contrib/inPlaceReplace/inPlaceReplaceCommand","vs/editor/contrib/indentation/indentUtils","vs/editor/contrib/linesOperations/copyLinesCommand","vs/editor/contrib/linesOperations/deleteLinesCommand","vs/editor/contrib/linesOperations/sortLinesCommand","vs/editor/contrib/smartSelect/tokenTree","vs/css!vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight","vs/css!vs/editor/browser/viewParts/currentLineMarginHighlight/currentLineMarginHighlight","vs/editor/standalone/common/monarch/monarchCompile","vs/nls!vs/base/browser/ui/actionbar/actionbar","vs/css!vs/editor/browser/viewParts/decorations/decorations","vs/css!vs/editor/browser/viewParts/glyphMargin/glyphMargin","vs/css!vs/editor/browser/viewParts/indentGuides/indentGuides","vs/nls!vs/base/browser/ui/aria/aria","vs/css!vs/editor/browser/viewParts/lineNumbers/lineNumbers","vs/nls!vs/base/browser/ui/findinput/findInput","vs/nls!vs/base/browser/ui/findinput/findInputCheckboxes","vs/css!vs/editor/browser/viewParts/lines/viewLines","vs/nls!vs/base/browser/ui/inputbox/inputBox","vs/css!vs/editor/browser/viewParts/linesDecorations/linesDecorations","vs/base/browser/ui/findinput/findInput","vs/nls!vs/base/browser/ui/list/listWidget","vs/base/browser/ui/list/listWidget","vs/nls!vs/base/browser/ui/menu/menu","vs/base/browser/ui/menu/menu","vs/nls!vs/base/common/keybindingLabels","vs/css!vs/editor/browser/viewParts/marginDecorations/marginDecorations","vs/base/browser/ui/keybindingLabel/keybindingLabel","vs/nls!vs/base/common/severity","vs/css!vs/editor/browser/viewParts/minimap/minimap","vs/nls!vs/base/parts/quickopen/browser/quickOpenModel","vs/css!vs/editor/browser/viewParts/overlayWidgets/overlayWidgets","vs/nls!vs/base/parts/quickopen/browser/quickOpenWidget","vs/base/parts/quickopen/browser/quickOpenWidget","vs/nls!vs/editor/browser/controller/coreCommands","vs/nls!vs/editor/browser/widget/codeEditorWidget","vs/nls!vs/editor/browser/widget/diffEditorWidget","vs/nls!vs/editor/browser/widget/diffReview","vs/nls!vs/editor/common/config/commonEditorConfig","vs/nls!vs/editor/common/config/editorOptions","vs/css!vs/editor/browser/viewParts/rulers/rulers","vs/css!vs/editor/browser/viewParts/scrollDecoration/scrollDecoration","vs/editor/contrib/suggest/completionModel","vs/nls!vs/editor/common/controller/cursor","vs/nls!vs/editor/common/modes/modesRegistry","vs/nls!vs/editor/common/services/modelServiceImpl","vs/nls!vs/editor/common/view/editorColorRegistry","vs/nls!vs/editor/contrib/bracketMatching/bracketMatching","vs/nls!vs/editor/contrib/caretOperations/caretOperations","vs/nls!vs/editor/contrib/caretOperations/transpose","vs/nls!vs/editor/contrib/clipboard/clipboard","vs/nls!vs/editor/contrib/codeAction/codeActionCommands","vs/nls!vs/editor/contrib/comment/comment","vs/nls!vs/editor/contrib/contextmenu/contextmenu","vs/nls!vs/editor/contrib/cursorUndo/cursorUndo","vs/nls!vs/editor/contrib/find/findController","vs/nls!vs/editor/contrib/find/findWidget","vs/nls!vs/editor/contrib/folding/folding","vs/nls!vs/editor/contrib/fontZoom/fontZoom","vs/nls!vs/editor/contrib/format/formatActions","vs/nls!vs/editor/contrib/goToDefinition/goToDefinitionCommands","vs/nls!vs/editor/contrib/goToDefinition/goToDefinitionMouse","vs/nls!vs/editor/contrib/gotoError/gotoError","vs/nls!vs/editor/contrib/gotoError/gotoErrorWidget","vs/nls!vs/editor/contrib/hover/hover","vs/nls!vs/editor/contrib/hover/modesContentHover","vs/nls!vs/editor/contrib/inPlaceReplace/inPlaceReplace","vs/nls!vs/editor/contrib/linesOperations/linesOperations","vs/nls!vs/editor/contrib/links/links","vs/nls!vs/editor/contrib/message/messageController","vs/nls!vs/editor/contrib/multicursor/multicursor","vs/nls!vs/editor/contrib/parameterHints/parameterHints","vs/nls!vs/editor/contrib/parameterHints/parameterHintsWidget","vs/nls!vs/editor/contrib/referenceSearch/peekViewWidget","vs/nls!vs/editor/contrib/referenceSearch/referenceSearch","vs/nls!vs/editor/contrib/referenceSearch/referencesController","vs/nls!vs/editor/contrib/referenceSearch/referencesModel","vs/css!vs/editor/browser/viewParts/selections/selections","vs/nls!vs/editor/contrib/referenceSearch/referencesWidget","vs/nls!vs/editor/contrib/rename/rename","vs/nls!vs/editor/contrib/rename/renameInputField","vs/nls!vs/editor/contrib/smartSelect/smartSelect","vs/nls!vs/editor/contrib/snippet/snippetVariables","vs/editor/contrib/snippet/snippetVariables","vs/nls!vs/editor/contrib/suggest/suggestController","vs/nls!vs/editor/contrib/suggest/suggestWidget","vs/nls!vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode","vs/nls!vs/editor/contrib/wordHighlighter/wordHighlighter","vs/nls!vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp","vs/nls!vs/editor/standalone/browser/inspectTokens/inspectTokens","vs/nls!vs/editor/standalone/browser/quickOpen/gotoLine","vs/nls!vs/editor/standalone/browser/quickOpen/quickCommand","vs/nls!vs/editor/standalone/browser/quickOpen/quickOutline","vs/nls!vs/editor/standalone/browser/simpleServices","vs/nls!vs/editor/standalone/browser/standaloneCodeEditor","vs/nls!vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast","vs/nls!vs/platform/configuration/common/configurationRegistry","vs/nls!vs/platform/keybinding/common/abstractKeybindingService","vs/nls!vs/platform/list/browser/listService","vs/nls!vs/platform/markers/common/markers","vs/nls!vs/platform/theme/common/colorRegistry","vs/platform/contextview/browser/contextMenuHandler","vs/platform/contextview/browser/contextMenuService","vs/platform/instantiation/common/descriptors","vs/css!vs/editor/browser/viewParts/viewCursors/viewCursors","vs/css!vs/editor/browser/widget/media/diffEditor","vs/css!vs/editor/browser/widget/media/diffReview","vs/css!vs/editor/browser/widget/media/editor","vs/css!vs/editor/browser/widget/media/tokens","vs/css!vs/editor/contrib/bracketMatching/bracketMatching","vs/editor/common/modes/languageFeatureRegistry","vs/css!vs/editor/contrib/clipboard/clipboard","vs/css!vs/editor/contrib/codeAction/lightBulbWidget","vs/css!vs/editor/contrib/codelens/codelensWidget","vs/editor/common/model/textModelTokens","vs/css!vs/editor/contrib/colorPicker/colorPicker","vs/css!vs/editor/contrib/dnd/dnd","vs/css!vs/editor/contrib/find/findWidget","vs/editor/common/controller/cursorColumnSelection","vs/css!vs/editor/contrib/folding/folding","vs/base/browser/ui/octiconLabel/octiconLabel","vs/css!vs/editor/contrib/gotoError/gotoErrorWidget","vs/css!vs/editor/contrib/hover/hover","vs/css!vs/editor/contrib/links/links","vs/editor/common/controller/oneCursor","vs/editor/common/controller/cursorCollection","vs/editor/common/controller/cursor","vs/css!vs/editor/contrib/message/messageController","vs/css!vs/editor/contrib/parameterHints/parameterHints","vs/css!vs/editor/contrib/referenceSearch/media/peekViewWidget","vs/css!vs/editor/contrib/referenceSearch/media/referencesWidget","vs/editor/common/services/webWorker","vs/css!vs/editor/contrib/rename/renameInputField","vs/editor/common/view/runtimeMinimapCharRenderer","vs/css!vs/editor/contrib/snippet/snippetSession","vs/editor/common/viewModel/characterHardWrappingLineMapper","vs/editor/common/viewModel/viewModelImpl","vs/editor/contrib/codeAction/lightBulbWidget","vs/editor/contrib/folding/foldingDecorations","vs/editor/contrib/folding/indentRangeProvider","vs/editor/contrib/linesOperations/moveLinesCommand","vs/editor/contrib/smartSelect/tokenSelectionSupport","vs/css!vs/editor/contrib/suggest/media/suggest","vs/editor/standalone/browser/colorizer","vs/editor/standalone/common/monarch/monarchLexer","vs/css!vs/editor/contrib/zoneWidget/zoneWidget","vs/css!vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp","vs/editor/contrib/snippet/snippetSession","vs/css!vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard","vs/editor/contrib/links/getLinks","vs/css!vs/editor/standalone/browser/inspectTokens/inspectTokens","vs/css!vs/editor/standalone/browser/quickOpen/gotoLine","vs/css!vs/editor/standalone/browser/quickOpen/quickOutline","vs/platform/actions/common/menu","vs/css!vs/editor/standalone/browser/standalone-tokens","vs/platform/dialogs/common/dialogs","vs/platform/environment/common/environment","vs/css!vs/platform/contextview/browser/contextMenuHandler","vs/platform/instantiation/common/instantiationService","vs/platform/keybinding/common/abstractKeybindingService","vs/editor/browser/config/charWidthReader","vs/editor/browser/config/elementSizeObserver","vs/platform/keybinding/common/resolvedKeybindingItem","vs/platform/keybinding/common/usLayoutResolvedKeybinding","vs/base/common/history","vs/base/common/diff/diffChange","vs/platform/markers/common/markerService","vs/editor/browser/services/abstractCodeEditorService","vs/base/common/mime","vs/base/browser/ui/list/splice","vs/base/browser/ui/scrollbar/scrollbarVisibilityController","vs/base/common/functional","vs/base/browser/ui/scrollbar/horizontalScrollbar","vs/platform/jsonschemas/common/jsonContributionRegistry","vs/base/browser/ui/scrollbar/verticalScrollbar","vs/editor/common/commands/trimTrailingWhitespaceCommand","vs/editor/common/core/rgba","vs/editor/browser/view/viewOverlays","vs/editor/browser/viewParts/viewCursors/viewCursor","vs/editor/common/services/languagesRegistry","vs/editor/common/services/modeServiceImpl","vs/base/common/winjs.polyfill.promise","vs/platform/configuration/common/configurationModels","vs/platform/contextkey/browser/contextKeyService","vs/base/common/graph","vs/editor/common/commands/surroundSelectionCommand","vs/editor/contrib/suggest/suggestMemory","vs/base/parts/quickopen/browser/quickOpenViewer","vs/base/common/hash","vs/base/parts/tree/browser/tree","vs/editor/browser/view/viewController","vs/editor/contrib/caretOperations/caretOperations","vs/editor/contrib/caretOperations/transpose","vs/editor/contrib/clipboard/clipboard","vs/editor/contrib/codeAction/codeAction","vs/editor/contrib/codeAction/codeActionModel","vs/editor/contrib/codelens/codelens","vs/base/common/collections","vs/base/parts/tree/browser/treeDnd","vs/editor/contrib/comment/comment","vs/editor/contrib/contextmenu/contextmenu","vs/editor/contrib/cursorUndo/cursorUndo","vs/editor/contrib/dnd/dnd","vs/editor/contrib/folding/folding","vs/editor/contrib/fontZoom/fontZoom","vs/editor/contrib/format/format","vs/editor/contrib/format/formatActions","vs/base/parts/tree/browser/treeModel","vs/editor/contrib/hover/getHover","vs/editor/contrib/linesOperations/linesOperations","vs/editor/common/diff/diffComputer","vs/editor/contrib/quickOpen/quickOpen","vs/editor/contrib/smartSelect/smartSelect","vs/base/parts/tree/browser/treeViewModel","vs/base/worker/defaultWorkerFactory","vs/editor/contrib/suggest/suggestModel","vs/css!vs/base/browser/builder","vs/base/common/numbers","vs/editor/contrib/wordPartOperations/wordPartOperations","vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard","vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast","vs/platform/contextview/browser/contextViewService","vs/platform/telemetry/common/telemetryUtils","vs/editor/browser/services/openerService","vs/base/common/marshalling","vs/css!vs/base/browser/ui/actionbar/actionbar","vs/editor/standalone/browser/quickOpen/quickOpenEditorWidget","vs/editor/common/model/editStack","vs/editor/browser/services/codeEditorServiceImpl","vs/editor/browser/viewParts/editorScrollbar/editorScrollbar","vs/editor/common/model/indentationGuesser","vs/editor/common/model/intervalTree","vs/editor/browser/controller/mouseHandler","vs/editor/browser/controller/pointerHandler","vs/editor/browser/view/viewOutgoingEvents","vs/editor/browser/viewParts/lines/viewLines","vs/editor/browser/viewParts/minimap/minimap","vs/editor/browser/viewParts/scrollDecoration/scrollDecoration","vs/editor/browser/viewParts/selections/selections","vs/editor/common/model/pieceTreeTextBuffer/rbTreeBase","vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight","vs/editor/browser/viewParts/currentLineMarginHighlight/currentLineMarginHighlight","vs/editor/browser/viewParts/indentGuides/indentGuides","vs/editor/common/model/textModelEvents","vs/editor/browser/controller/textAreaHandler","vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler","vs/editor/browser/viewParts/rulers/rulers","vs/editor/browser/viewParts/viewCursors/viewCursors","vs/editor/browser/view/viewImpl","vs/css!vs/base/browser/ui/aria/aria","vs/editor/browser/widget/diffReview","vs/css!vs/base/browser/ui/checkbox/checkbox","vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer","vs/editor/common/services/modelServiceImpl","vs/editor/contrib/bracketMatching/bracketMatching","vs/editor/contrib/codelens/codelensWidget","vs/editor/contrib/codelens/codelensController","vs/editor/contrib/colorPicker/colorPickerWidget","vs/editor/contrib/find/findDecorations","vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBufferBuilder","vs/editor/contrib/find/findOptionsWidget","vs/editor/contrib/gotoError/gotoErrorWidget","vs/editor/contrib/gotoError/gotoError","vs/editor/contrib/hover/modesContentHover","vs/editor/contrib/hover/hover","vs/editor/contrib/inPlaceReplace/inPlaceReplace","vs/editor/contrib/links/links","vs/base/browser/ui/checkbox/checkbox","vs/editor/contrib/codeAction/codeActionCommands","vs/editor/contrib/codeAction/codeActionContributions","vs/editor/contrib/parameterHints/parameterHintsWidget","vs/editor/contrib/parameterHints/parameterHints","vs/editor/common/modes/abstractMode","vs/editor/contrib/rename/renameInputField","vs/editor/contrib/rename/rename","vs/editor/contrib/suggest/suggestWidget","vs/editor/contrib/suggest/suggestController","vs/editor/contrib/wordHighlighter/wordHighlighter","vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp","vs/editor/standalone/browser/inspectTokens/inspectTokens","vs/css!vs/base/browser/ui/contextview/contextview","vs/editor/standalone/browser/quickOpen/gotoLine","vs/editor/standalone/browser/quickOpen/quickCommand","vs/editor/standalone/browser/quickOpen/quickOutline","vs/editor/standalone/browser/standaloneCodeServiceImpl","vs/editor/standalone/common/themes","vs/editor/standalone/browser/standaloneThemeServiceImpl","vs/editor/common/modes/languageSelector","vs/editor/common/modes/linkComputer","vs/platform/widget/common/contextScopedWidget","vs/platform/widget/browser/contextScopedHistoryWidget","vs/editor/contrib/find/findWidget","vs/base/browser/dnd","vs/editor/contrib/multicursor/multicursor","vs/editor/common/modes/supports/characterPair","vs/editor/common/modes/supports/indentRules","vs/editor/common/modes/supports/inplaceReplaceSupport","vs/editor/common/modes/supports/onEnter","vs/editor/contrib/goToDefinition/goToDefinitionMouse","vs/editor/contrib/referenceSearch/referenceSearch","vs/editor/editor.all","vs/editor/standalone/browser/referenceSearch/standaloneReferenceSearch","vs/css!vs/base/browser/ui/countBadge/countBadge","vs/editor/standalone/browser/standaloneCodeEditor","vs/editor/common/modes/supports/electricCharacter","vs/editor/standalone/browser/standaloneEditor","vs/editor/standalone/browser/standaloneLanguages","vs/base/common/marked/marked","vs/editor/edcore.main"],n=function(e){ +var e,t=["exports","require","vs/base/common/lifecycle","vs/editor/common/core/range","vs/nls!vs/editor/editor.main","vs/nls","vs/base/common/strings","vs/base/browser/dom","vs/css!vs/editor/editor.main","vs/base/common/event","vs/base/common/errors","vs/editor/browser/editorExtensions","vs/editor/common/core/position","vs/base/common/winjs.base","vs/base/common/async","vs/platform/instantiation/common/instantiation","vs/platform/theme/common/themeService","vs/editor/common/modes","vs/base/common/platform","vs/platform/contextkey/common/contextkey","vs/editor/common/editorContextKeys","vs/editor/common/core/selection","vs/platform/theme/common/colorRegistry","vs/editor/browser/editorBrowser","vs/editor/common/model","vs/base/common/arrays","vs/base/browser/fastDomNode","vs/base/common/color","vs/base/common/objects","vs/editor/common/model/textModel","vs/base/browser/browser","vs/base/common/uri","vs/editor/browser/services/codeEditorService","vs/base/common/types","vs/platform/commands/common/commands","vs/editor/common/view/editorColorRegistry","vs/editor/browser/view/viewPart","vs/platform/notification/common/notification","vs/editor/common/controller/cursorCommon","vs/base/common/keyCodes","vs/base/common/cancellation","vs/editor/common/modes/languageConfigurationRegistry","vs/base/browser/mouseEvent","vs/base/common/scrollable","vs/platform/actions/common/actions","vs/platform/registry/common/platform","vs/base/browser/ui/widget","vs/editor/common/config/editorOptions","vs/editor/common/services/modelService","vs/platform/keybinding/common/keybinding","vs/base/common/paths","vs/platform/configuration/common/configuration","vs/base/browser/ui/aria/aria","vs/editor/common/core/editOperation","vs/editor/common/controller/cursorEvents","vs/base/browser/ui/scrollbar/scrollableElement","vs/base/browser/builder","vs/base/browser/keyboardEvent","vs/editor/common/modes/languageConfiguration","vs/editor/browser/view/dynamicViewOverlay","vs/editor/common/modes/nullMode","vs/base/common/network","vs/platform/opener/common/opener","vs/editor/common/viewModel/viewModel","vs/editor/common/services/modeService","vs/editor/browser/config/configuration","vs/editor/common/editorCommon","vs/base/common/actions","vs/editor/browser/core/editorState","vs/base/browser/ui/actionbar/actionbar","vs/base/common/map","vs/editor/common/services/editorWorkerService","vs/platform/storage/common/storage","vs/base/browser/globalMouseMoveMonitor","vs/base/browser/touch","vs/platform/markers/common/markers","vs/editor/common/commands/replaceCommand","vs/platform/contextview/browser/contextView","vs/editor/common/view/viewEvents","vs/base/common/htmlContent","vs/editor/common/viewModel/viewEventHandler","vs/base/parts/tree/browser/treeDefaults","vs/platform/configuration/common/configurationRegistry","vs/editor/common/core/characterClassifier","vs/editor/standalone/common/standaloneThemeService","vs/base/common/assert","vs/platform/telemetry/common/telemetry","vs/base/browser/event","vs/editor/common/view/renderingContext","vs/editor/common/controller/wordCharacterClassifier","vs/base/browser/ui/sash/sash","vs/editor/common/modes/supports","vs/platform/progress/common/progress","vs/base/parts/quickopen/common/quickOpen","vs/editor/common/core/uint","vs/editor/common/core/token","vs/editor/common/viewLayout/viewLineRenderer","vs/platform/keybinding/common/keybindingsRegistry","vs/editor/common/config/editorZoom","vs/editor/common/core/lineTokens","vs/editor/common/model/wordHelper","vs/editor/contrib/suggest/suggest","vs/base/common/filters","vs/platform/theme/common/styler","vs/editor/browser/widget/codeEditorWidget","vs/editor/common/modes/supports/richEditBrackets","vs/platform/instantiation/common/serviceCollection","vs/editor/common/services/resolverService","vs/editor/common/view/minimapCharRenderer","vs/editor/contrib/folding/foldingRanges","vs/editor/contrib/snippet/snippetParser","vs/base/common/decorators","vs/editor/common/core/stringBuilder","vs/editor/browser/view/viewLayer","vs/base/browser/ui/scrollbar/scrollbarArrow","vs/base/browser/ui/inputbox/inputBox","vs/editor/browser/editorDom","vs/platform/log/common/log","vs/base/common/severity","vs/base/parts/quickopen/browser/quickOpenModel","vs/base/common/diff/diff","vs/editor/contrib/markdown/markdownRenderer","vs/editor/common/config/fontInfo","vs/editor/contrib/referenceSearch/referencesModel","vs/editor/common/modes/modesRegistry","vs/editor/common/viewLayout/lineDecorations","vs/editor/common/config/commonEditorConfig","vs/editor/browser/services/bulkEditService","vs/editor/standalone/browser/simpleServices","vs/editor/common/viewModel/prefixSumComputer","vs/base/common/idGenerator","vs/base/browser/htmlContentRenderer","vs/base/common/iterator","vs/editor/browser/controller/coreCommands","vs/editor/browser/viewParts/glyphMargin/glyphMargin","vs/editor/contrib/snippet/snippetController2","vs/editor/common/model/textModelSearch","vs/editor/contrib/codeAction/codeActionTrigger","vs/base/browser/ui/highlightedlabel/highlightedLabel","vs/editor/common/controller/cursorTypeOperations","vs/editor/common/controller/cursorWordOperations","vs/editor/browser/widget/embeddedCodeEditorWidget","vs/editor/contrib/find/findModel","vs/editor/contrib/message/messageController","vs/editor/contrib/referenceSearch/peekViewWidget","vs/editor/standalone/browser/quickOpen/editorQuickOpen","vs/platform/list/browser/listService","vs/platform/workspace/common/workspace","vs/editor/contrib/referenceSearch/referencesController","vs/editor/contrib/comment/blockCommentCommand","vs/base/browser/ui/findinput/findInputCheckboxes","vs/editor/common/standalone/standaloneBase","vs/editor/common/view/overviewZoneManager","vs/base/common/glob","vs/platform/keybinding/common/keybindingResolver","vs/base/parts/tree/browser/treeImpl","vs/css!vs/editor/contrib/goToDefinition/goToDefinitionMouse","vs/base/browser/ui/scrollbar/scrollbarState","vs/base/browser/ui/scrollbar/abstractScrollbar","vs/editor/common/editorAction","vs/base/common/worker/simpleWorker","vs/base/common/hacks","vs/base/common/keybindingLabels","vs/editor/browser/viewParts/margin/margin","vs/editor/browser/controller/textAreaState","vs/editor/browser/controller/textAreaInput","vs/base/common/linkedList","vs/editor/common/model/pieceTreeTextBuffer/pieceTreeBase","vs/editor/contrib/folding/syntaxRangeProvider","vs/editor/contrib/goToDefinition/clickLinkGesture","vs/editor/common/commands/shiftCommand","vs/editor/common/controller/cursorMoveOperations","vs/editor/contrib/colorPicker/color","vs/editor/contrib/colorPicker/colorDetector","vs/editor/contrib/goToDefinition/goToDefinition","vs/editor/contrib/parameterHints/provideSignatureHelp","vs/editor/common/controller/cursorDeleteOperations","vs/editor/contrib/hover/hoverOperation","vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode","vs/editor/contrib/wordOperations/wordOperations","vs/editor/contrib/hover/hoverWidgets","vs/editor/common/controller/cursorMoveCommands","vs/editor/common/modes/textToHtmlTokenizer","vs/editor/browser/viewParts/lines/viewLine","vs/editor/browser/controller/mouseTarget","vs/editor/browser/widget/diffNavigator","vs/editor/browser/viewParts/lineNumbers/lineNumbers","vs/editor/common/services/resourceConfiguration","vs/editor/browser/widget/diffEditorWidget","vs/editor/common/services/editorWorkerServiceImpl","vs/editor/standalone/common/monarch/monarchCommon","vs/editor/common/viewModel/splitLinesCollection","vs/editor/contrib/zoneWidget/zoneWidget","vs/base/browser/iframe","vs/platform/clipboard/common/clipboardService","vs/platform/uriDisplay/common/uriDisplay","vs/editor/contrib/find/findController","vs/base/browser/ui/contextview/contextview","vs/editor/contrib/referenceSearch/referencesWidget","vs/base/browser/ui/iconLabel/iconLabel","vs/editor/contrib/goToDefinition/goToDefinitionCommands","vs/base/common/labels","vs/editor/standalone/browser/standaloneServices","vs/base/browser/ui/countBadge/countBadge","vs/editor/common/modes/supports/tokenization","vs/editor/common/modes/tokenizationRegistry","vs/css!vs/base/browser/ui/findinput/findInput","vs/css!vs/base/browser/ui/findinput/findInputCheckboxes","vs/css!vs/base/browser/ui/iconLabel/iconlabel","vs/editor/browser/viewParts/lines/rangeUtil","vs/editor/common/view/viewContext","vs/editor/common/view/viewEventDispatcher","vs/editor/editor.api","vs/css!vs/base/browser/ui/inputbox/inputBox","vs/css!vs/base/browser/ui/keybindingLabel/keybindingLabel","vs/editor/common/viewLayout/viewLinesViewportData","vs/editor/common/viewLayout/whitespaceComputer","vs/editor/common/viewLayout/linesLayout","vs/css!vs/base/browser/ui/list/list","vs/editor/common/model/mirrorTextModel","vs/editor/common/services/editorSimpleWorker","vs/css!vs/base/browser/ui/menu/menu","vs/css!vs/base/browser/ui/progressbar/progressbar","vs/base/browser/ui/progressbar/progressbar","vs/editor/browser/viewParts/contentWidgets/contentWidgets","vs/editor/browser/viewParts/decorations/decorations","vs/css!vs/base/browser/ui/sash/sash","vs/editor/browser/viewParts/linesDecorations/linesDecorations","vs/base/common/stopwatch","vs/editor/browser/viewParts/marginDecorations/marginDecorations","vs/editor/browser/viewParts/overlayWidgets/overlayWidgets","vs/editor/browser/viewParts/overviewRuler/overviewRuler","vs/editor/browser/viewParts/viewZones/viewZones","vs/css!vs/base/browser/ui/scrollbar/media/scrollbars","vs/editor/common/viewLayout/viewLayout","vs/editor/common/viewModel/viewModelDecorations","vs/editor/contrib/caretOperations/moveCaretCommand","vs/base/browser/ui/list/rangeMap","vs/editor/contrib/codeAction/codeActionWidget","vs/editor/contrib/colorPicker/colorPickerModel","vs/base/browser/ui/list/listView","vs/editor/contrib/comment/lineCommentCommand","vs/editor/contrib/dnd/dragAndDropCommand","vs/editor/contrib/find/findState","vs/editor/contrib/find/replaceAllCommand","vs/editor/contrib/find/replacePattern","vs/base/parts/tree/browser/treeView","vs/editor/contrib/folding/foldingModel","vs/editor/contrib/folding/hiddenRangeModel","vs/css!vs/base/parts/quickopen/browser/quickopen","vs/editor/contrib/folding/intializingRangeProvider","vs/editor/contrib/format/formattingEdit","vs/css!vs/base/parts/tree/browser/tree","vs/base/browser/ui/list/rowCache","vs/css!vs/editor/browser/controller/textAreaHandler","vs/editor/contrib/hover/modesGlyphHover","vs/editor/contrib/inPlaceReplace/inPlaceReplaceCommand","vs/editor/contrib/indentation/indentUtils","vs/editor/contrib/linesOperations/copyLinesCommand","vs/editor/contrib/linesOperations/deleteLinesCommand","vs/editor/contrib/linesOperations/sortLinesCommand","vs/editor/contrib/smartSelect/tokenTree","vs/css!vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight","vs/css!vs/editor/browser/viewParts/currentLineMarginHighlight/currentLineMarginHighlight","vs/editor/standalone/common/monarch/monarchCompile","vs/nls!vs/base/browser/ui/actionbar/actionbar","vs/css!vs/editor/browser/viewParts/decorations/decorations","vs/css!vs/editor/browser/viewParts/glyphMargin/glyphMargin","vs/css!vs/editor/browser/viewParts/indentGuides/indentGuides","vs/nls!vs/base/browser/ui/aria/aria","vs/css!vs/editor/browser/viewParts/lineNumbers/lineNumbers","vs/nls!vs/base/browser/ui/findinput/findInput","vs/nls!vs/base/browser/ui/findinput/findInputCheckboxes","vs/css!vs/editor/browser/viewParts/lines/viewLines","vs/nls!vs/base/browser/ui/inputbox/inputBox","vs/css!vs/editor/browser/viewParts/linesDecorations/linesDecorations","vs/base/browser/ui/findinput/findInput","vs/nls!vs/base/browser/ui/list/listWidget","vs/base/browser/ui/list/listWidget","vs/nls!vs/base/browser/ui/menu/menu","vs/base/browser/ui/menu/menu","vs/nls!vs/base/common/keybindingLabels","vs/css!vs/editor/browser/viewParts/marginDecorations/marginDecorations","vs/base/browser/ui/keybindingLabel/keybindingLabel","vs/nls!vs/base/common/severity","vs/css!vs/editor/browser/viewParts/minimap/minimap","vs/nls!vs/base/parts/quickopen/browser/quickOpenModel","vs/css!vs/editor/browser/viewParts/overlayWidgets/overlayWidgets","vs/nls!vs/base/parts/quickopen/browser/quickOpenWidget","vs/base/parts/quickopen/browser/quickOpenWidget","vs/nls!vs/editor/browser/controller/coreCommands","vs/nls!vs/editor/browser/widget/codeEditorWidget","vs/nls!vs/editor/browser/widget/diffEditorWidget","vs/nls!vs/editor/browser/widget/diffReview","vs/nls!vs/editor/common/config/commonEditorConfig","vs/nls!vs/editor/common/config/editorOptions","vs/css!vs/editor/browser/viewParts/rulers/rulers","vs/css!vs/editor/browser/viewParts/scrollDecoration/scrollDecoration","vs/editor/contrib/suggest/completionModel","vs/nls!vs/editor/common/controller/cursor","vs/nls!vs/editor/common/modes/modesRegistry","vs/nls!vs/editor/common/services/modelServiceImpl","vs/nls!vs/editor/common/view/editorColorRegistry","vs/nls!vs/editor/contrib/bracketMatching/bracketMatching","vs/nls!vs/editor/contrib/caretOperations/caretOperations","vs/nls!vs/editor/contrib/caretOperations/transpose","vs/nls!vs/editor/contrib/clipboard/clipboard","vs/nls!vs/editor/contrib/codeAction/codeActionCommands","vs/nls!vs/editor/contrib/comment/comment","vs/nls!vs/editor/contrib/contextmenu/contextmenu","vs/nls!vs/editor/contrib/cursorUndo/cursorUndo","vs/nls!vs/editor/contrib/find/findController","vs/nls!vs/editor/contrib/find/findWidget","vs/nls!vs/editor/contrib/folding/folding","vs/nls!vs/editor/contrib/fontZoom/fontZoom","vs/nls!vs/editor/contrib/format/formatActions","vs/nls!vs/editor/contrib/goToDefinition/goToDefinitionCommands","vs/nls!vs/editor/contrib/goToDefinition/goToDefinitionMouse","vs/nls!vs/editor/contrib/gotoError/gotoError","vs/nls!vs/editor/contrib/gotoError/gotoErrorWidget","vs/nls!vs/editor/contrib/hover/hover","vs/nls!vs/editor/contrib/hover/modesContentHover","vs/nls!vs/editor/contrib/inPlaceReplace/inPlaceReplace","vs/nls!vs/editor/contrib/linesOperations/linesOperations","vs/nls!vs/editor/contrib/links/links","vs/nls!vs/editor/contrib/message/messageController","vs/nls!vs/editor/contrib/multicursor/multicursor","vs/nls!vs/editor/contrib/parameterHints/parameterHints","vs/nls!vs/editor/contrib/parameterHints/parameterHintsWidget","vs/nls!vs/editor/contrib/referenceSearch/peekViewWidget","vs/nls!vs/editor/contrib/referenceSearch/referenceSearch","vs/nls!vs/editor/contrib/referenceSearch/referencesController","vs/nls!vs/editor/contrib/referenceSearch/referencesModel","vs/css!vs/editor/browser/viewParts/selections/selections","vs/nls!vs/editor/contrib/referenceSearch/referencesWidget","vs/nls!vs/editor/contrib/rename/rename","vs/nls!vs/editor/contrib/rename/renameInputField","vs/nls!vs/editor/contrib/smartSelect/smartSelect","vs/nls!vs/editor/contrib/snippet/snippetVariables","vs/editor/contrib/snippet/snippetVariables","vs/nls!vs/editor/contrib/suggest/suggestController","vs/nls!vs/editor/contrib/suggest/suggestWidget","vs/nls!vs/editor/contrib/toggleTabFocusMode/toggleTabFocusMode","vs/nls!vs/editor/contrib/wordHighlighter/wordHighlighter","vs/nls!vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp","vs/nls!vs/editor/standalone/browser/inspectTokens/inspectTokens","vs/nls!vs/editor/standalone/browser/quickOpen/gotoLine","vs/nls!vs/editor/standalone/browser/quickOpen/quickCommand","vs/nls!vs/editor/standalone/browser/quickOpen/quickOutline","vs/nls!vs/editor/standalone/browser/simpleServices","vs/nls!vs/editor/standalone/browser/standaloneCodeEditor","vs/nls!vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast","vs/nls!vs/platform/configuration/common/configurationRegistry","vs/nls!vs/platform/keybinding/common/abstractKeybindingService","vs/nls!vs/platform/list/browser/listService","vs/nls!vs/platform/markers/common/markers","vs/nls!vs/platform/theme/common/colorRegistry","vs/platform/contextview/browser/contextMenuHandler","vs/platform/contextview/browser/contextMenuService","vs/platform/instantiation/common/descriptors","vs/css!vs/editor/browser/viewParts/viewCursors/viewCursors","vs/css!vs/editor/browser/widget/media/diffEditor","vs/css!vs/editor/browser/widget/media/diffReview","vs/css!vs/editor/browser/widget/media/editor","vs/css!vs/editor/browser/widget/media/tokens","vs/css!vs/editor/contrib/bracketMatching/bracketMatching","vs/editor/common/modes/languageFeatureRegistry","vs/css!vs/editor/contrib/clipboard/clipboard","vs/css!vs/editor/contrib/codeAction/lightBulbWidget","vs/css!vs/editor/contrib/codelens/codelensWidget","vs/editor/common/model/textModelTokens","vs/css!vs/editor/contrib/colorPicker/colorPicker","vs/css!vs/editor/contrib/dnd/dnd","vs/css!vs/editor/contrib/find/findWidget","vs/editor/common/controller/cursorColumnSelection","vs/css!vs/editor/contrib/folding/folding","vs/base/browser/ui/octiconLabel/octiconLabel","vs/css!vs/editor/contrib/gotoError/gotoErrorWidget","vs/css!vs/editor/contrib/hover/hover","vs/css!vs/editor/contrib/links/links","vs/editor/common/controller/oneCursor","vs/editor/common/controller/cursorCollection","vs/editor/common/controller/cursor","vs/css!vs/editor/contrib/message/messageController","vs/css!vs/editor/contrib/parameterHints/parameterHints","vs/css!vs/editor/contrib/referenceSearch/media/peekViewWidget","vs/css!vs/editor/contrib/referenceSearch/media/referencesWidget","vs/editor/common/services/webWorker","vs/css!vs/editor/contrib/rename/renameInputField","vs/editor/common/view/runtimeMinimapCharRenderer","vs/css!vs/editor/contrib/snippet/snippetSession","vs/editor/common/viewModel/characterHardWrappingLineMapper","vs/editor/common/viewModel/viewModelImpl","vs/editor/contrib/codeAction/lightBulbWidget","vs/editor/contrib/folding/foldingDecorations","vs/editor/contrib/folding/indentRangeProvider","vs/editor/contrib/linesOperations/moveLinesCommand","vs/editor/contrib/smartSelect/tokenSelectionSupport","vs/css!vs/editor/contrib/suggest/media/suggest","vs/editor/standalone/browser/colorizer","vs/editor/standalone/common/monarch/monarchLexer","vs/css!vs/editor/contrib/zoneWidget/zoneWidget","vs/css!vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp","vs/editor/contrib/snippet/snippetSession","vs/css!vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard","vs/editor/contrib/links/getLinks","vs/css!vs/editor/standalone/browser/inspectTokens/inspectTokens","vs/css!vs/editor/standalone/browser/quickOpen/gotoLine","vs/css!vs/editor/standalone/browser/quickOpen/quickOutline","vs/platform/actions/common/menu","vs/css!vs/editor/standalone/browser/standalone-tokens","vs/platform/dialogs/common/dialogs","vs/platform/environment/common/environment","vs/css!vs/platform/contextview/browser/contextMenuHandler","vs/platform/instantiation/common/instantiationService","vs/platform/keybinding/common/abstractKeybindingService","vs/editor/browser/config/charWidthReader","vs/editor/browser/config/elementSizeObserver","vs/platform/keybinding/common/resolvedKeybindingItem","vs/platform/keybinding/common/usLayoutResolvedKeybinding","vs/base/common/history","vs/base/common/diff/diffChange","vs/platform/markers/common/markerService","vs/editor/browser/services/abstractCodeEditorService","vs/base/common/mime","vs/base/browser/ui/list/splice","vs/base/browser/ui/scrollbar/scrollbarVisibilityController","vs/base/common/functional","vs/base/browser/ui/scrollbar/horizontalScrollbar","vs/platform/jsonschemas/common/jsonContributionRegistry","vs/base/browser/ui/scrollbar/verticalScrollbar","vs/editor/common/commands/trimTrailingWhitespaceCommand","vs/editor/common/core/rgba","vs/editor/browser/view/viewOverlays","vs/editor/browser/viewParts/viewCursors/viewCursor","vs/editor/common/services/languagesRegistry","vs/editor/common/services/modeServiceImpl","vs/base/common/winjs.polyfill.promise","vs/platform/configuration/common/configurationModels","vs/platform/contextkey/browser/contextKeyService","vs/base/common/graph","vs/editor/common/commands/surroundSelectionCommand","vs/editor/contrib/suggest/suggestMemory","vs/base/parts/quickopen/browser/quickOpenViewer","vs/base/common/hash","vs/base/parts/tree/browser/tree","vs/editor/browser/view/viewController","vs/editor/contrib/caretOperations/caretOperations","vs/editor/contrib/caretOperations/transpose","vs/editor/contrib/clipboard/clipboard","vs/editor/contrib/codeAction/codeAction","vs/editor/contrib/codeAction/codeActionModel","vs/editor/contrib/codelens/codelens","vs/base/common/collections","vs/base/parts/tree/browser/treeDnd","vs/editor/contrib/comment/comment","vs/editor/contrib/contextmenu/contextmenu","vs/editor/contrib/cursorUndo/cursorUndo","vs/editor/contrib/dnd/dnd","vs/editor/contrib/folding/folding","vs/editor/contrib/fontZoom/fontZoom","vs/editor/contrib/format/format","vs/editor/contrib/format/formatActions","vs/base/parts/tree/browser/treeModel","vs/editor/contrib/hover/getHover","vs/editor/contrib/linesOperations/linesOperations","vs/editor/common/diff/diffComputer","vs/editor/contrib/quickOpen/quickOpen","vs/editor/contrib/smartSelect/smartSelect","vs/base/parts/tree/browser/treeViewModel","vs/base/worker/defaultWorkerFactory","vs/editor/contrib/suggest/suggestModel","vs/css!vs/base/browser/builder","vs/base/common/numbers","vs/editor/contrib/wordPartOperations/wordPartOperations","vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard","vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast","vs/platform/contextview/browser/contextViewService","vs/platform/telemetry/common/telemetryUtils","vs/editor/browser/services/openerService","vs/base/common/marshalling","vs/css!vs/base/browser/ui/actionbar/actionbar","vs/editor/standalone/browser/quickOpen/quickOpenEditorWidget","vs/editor/common/model/editStack","vs/editor/browser/services/codeEditorServiceImpl","vs/editor/browser/viewParts/editorScrollbar/editorScrollbar","vs/editor/common/model/indentationGuesser","vs/editor/common/model/intervalTree","vs/editor/browser/controller/mouseHandler","vs/editor/browser/controller/pointerHandler","vs/editor/browser/view/viewOutgoingEvents","vs/editor/browser/viewParts/lines/viewLines","vs/editor/browser/viewParts/minimap/minimap","vs/editor/browser/viewParts/scrollDecoration/scrollDecoration","vs/editor/browser/viewParts/selections/selections","vs/editor/common/model/pieceTreeTextBuffer/rbTreeBase","vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight","vs/editor/browser/viewParts/currentLineMarginHighlight/currentLineMarginHighlight","vs/editor/browser/viewParts/indentGuides/indentGuides","vs/editor/common/model/textModelEvents","vs/editor/browser/controller/textAreaHandler","vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler","vs/editor/browser/viewParts/rulers/rulers","vs/editor/browser/viewParts/viewCursors/viewCursors","vs/editor/browser/view/viewImpl","vs/css!vs/base/browser/ui/aria/aria","vs/editor/browser/widget/diffReview","vs/css!vs/base/browser/ui/checkbox/checkbox","vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer","vs/editor/common/services/modelServiceImpl","vs/editor/contrib/bracketMatching/bracketMatching","vs/editor/contrib/codelens/codelensWidget","vs/editor/contrib/codelens/codelensController","vs/editor/contrib/colorPicker/colorPickerWidget","vs/editor/contrib/find/findDecorations","vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBufferBuilder","vs/editor/contrib/find/findOptionsWidget","vs/editor/contrib/gotoError/gotoErrorWidget","vs/editor/contrib/gotoError/gotoError","vs/editor/contrib/hover/modesContentHover","vs/editor/contrib/hover/hover","vs/editor/contrib/inPlaceReplace/inPlaceReplace","vs/editor/contrib/links/links","vs/base/browser/ui/checkbox/checkbox","vs/editor/contrib/codeAction/codeActionCommands","vs/editor/contrib/codeAction/codeActionContributions","vs/editor/contrib/parameterHints/parameterHintsWidget","vs/editor/contrib/parameterHints/parameterHints","vs/editor/common/modes/abstractMode","vs/editor/contrib/rename/renameInputField","vs/editor/contrib/rename/rename","vs/editor/contrib/suggest/suggestWidget","vs/editor/contrib/suggest/suggestController","vs/editor/contrib/wordHighlighter/wordHighlighter","vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp","vs/editor/standalone/browser/inspectTokens/inspectTokens","vs/css!vs/base/browser/ui/contextview/contextview","vs/editor/standalone/browser/quickOpen/gotoLine","vs/editor/standalone/browser/quickOpen/quickCommand","vs/editor/standalone/browser/quickOpen/quickOutline","vs/editor/standalone/browser/standaloneCodeServiceImpl","vs/editor/standalone/common/themes","vs/editor/standalone/browser/standaloneThemeServiceImpl","vs/editor/common/modes/languageSelector","vs/editor/common/modes/linkComputer","vs/platform/widget/common/contextScopedWidget","vs/platform/widget/browser/contextScopedHistoryWidget","vs/editor/contrib/find/findWidget","vs/base/browser/dnd","vs/editor/contrib/multicursor/multicursor","vs/editor/common/modes/supports/characterPair","vs/editor/common/modes/supports/indentRules","vs/editor/common/modes/supports/inplaceReplaceSupport","vs/editor/common/modes/supports/onEnter","vs/editor/contrib/goToDefinition/goToDefinitionMouse","vs/editor/contrib/referenceSearch/referenceSearch","vs/editor/editor.all","vs/editor/standalone/browser/referenceSearch/standaloneReferenceSearch","vs/css!vs/base/browser/ui/countBadge/countBadge","vs/editor/standalone/browser/standaloneCodeEditor","vs/editor/common/modes/supports/electricCharacter","vs/editor/standalone/browser/standaloneEditor","vs/editor/standalone/browser/standaloneLanguages","vs/base/common/marked/marked","vs/editor/edcore.main"],n=function(e){ for(var n=[],i=0,o=e.length;i0?t.insertBefore(e,n[n.length-1]):t.appendChild(e)},e.prototype.createLinkTag=function(e,t,n,i){var o=this,r=document.createElement("link");r.setAttribute("rel","stylesheet"),r.setAttribute("type","text/css"),r.setAttribute("data-name",e);return this.attachListeners(e,r,function(){return o._onLoad(e,n)},function(t){ return o._onLoadError(e,i,t)}),r.setAttribute("href",t),r},e.prototype._linkTagExists=function(e,t){var n,i,o,r,s=document.getElementsByTagName("link");for(n=0,i=s.length;n=0)},e}(),o=function(){function e(e){var n=this;this._env=e,this.localize=function(e,i){for(var o=[],r=2;rthis.source.length)return!1;for(t=0;te.end?null:(e.accept(function(e){return-1===e.offset&&-1===e.length||e.offset<=t&&e.end>=t&&(n?e.length<=n.length&&(n=e):n=e,!0)}),n)}Object.defineProperty(t,"__esModule",{value:!0}),(n=i=t.NodeType||(t.NodeType={}))[n.Undefined=0]="Undefined",n[n.Identifier=1]="Identifier",n[n.Stylesheet=2]="Stylesheet",n[n.Ruleset=3]="Ruleset",n[n.Selector=4]="Selector",n[n.SimpleSelector=5]="SimpleSelector",n[n.SelectorInterpolation=6]="SelectorInterpolation",n[n.SelectorCombinator=7]="SelectorCombinator",n[n.SelectorCombinatorParent=8]="SelectorCombinatorParent",n[n.SelectorCombinatorSibling=9]="SelectorCombinatorSibling",n[n.SelectorCombinatorAllSiblings=10]="SelectorCombinatorAllSiblings",n[n.SelectorCombinatorShadowPiercingDescendant=11]="SelectorCombinatorShadowPiercingDescendant",n[n.Page=12]="Page",n[n.PageBoxMarginBox=13]="PageBoxMarginBox",n[n.ClassSelector=14]="ClassSelector",n[n.IdentifierSelector=15]="IdentifierSelector",n[n.ElementNameSelector=16]="ElementNameSelector",n[n.PseudoSelector=17]="PseudoSelector",n[n.AttributeSelector=18]="AttributeSelector",n[n.Declaration=19]="Declaration",n[n.Declarations=20]="Declarations",n[n.Property=21]="Property",n[n.Expression=22]="Expression",n[n.BinaryExpression=23]="BinaryExpression",n[n.Term=24]="Term",n[n.Operator=25]="Operator",n[n.Value=26]="Value",n[n.StringLiteral=27]="StringLiteral",n[n.URILiteral=28]="URILiteral",n[n.EscapedValue=29]="EscapedValue",n[n.Function=30]="Function",n[n.NumericValue=31]="NumericValue",n[n.HexColorValue=32]="HexColorValue",n[n.MixinDeclaration=33]="MixinDeclaration",n[n.MixinReference=34]="MixinReference",n[n.VariableName=35]="VariableName",n[n.VariableDeclaration=36]="VariableDeclaration",n[n.Prio=37]="Prio",n[n.Interpolation=38]="Interpolation",n[n.NestedProperties=39]="NestedProperties",n[n.ExtendsReference=40]="ExtendsReference",n[n.SelectorPlaceholder=41]="SelectorPlaceholder",n[n.Debug=42]="Debug",n[n.If=43]="If",n[n.Else=44]="Else",n[n.For=45]="For",n[n.Each=46]="Each",n[n.While=47]="While",n[n.MixinContent=48]="MixinContent",n[n.Media=49]="Media",n[n.Keyframe=50]="Keyframe",n[n.FontFace=51]="FontFace",n[n.Import=52]="Import",n[n.Namespace=53]="Namespace",n[n.Invocation=54]="Invocation",n[n.FunctionDeclaration=55]="FunctionDeclaration",n[n.ReturnStatement=56]="ReturnStatement",n[n.MediaQuery=57]="MediaQuery",n[n.FunctionParameter=58]="FunctionParameter",n[n.FunctionArgument=59]="FunctionArgument",n[n.KeyframeSelector=60]="KeyframeSelector",n[n.ViewPort=61]="ViewPort",n[n.Document=62]="Document",n[n.AtApplyRule=63]="AtApplyRule",n[n.CustomPropertyDeclaration=64]="CustomPropertyDeclaration",n[n.CustomPropertySet=65]="CustomPropertySet",n[n.ListEntry=66]="ListEntry",n[n.Supports=67]="Supports",n[n.SupportsCondition=68]="SupportsCondition",n[n.NamespacePrefix=69]="NamespacePrefix",n[n.GridLine=70]="GridLine",n[n.Plugin=71]="Plugin",n[n.UnknownAtRule=72]="UnknownAtRule",(r=t.ReferenceType||(t.ReferenceType={}))[r.Mixin=0]="Mixin",r[r.Rule=1]="Rule",r[r.Variable=2]="Variable",r[r.Function=3]="Function",r[r.Keyframe=4]="Keyframe",r[r.Unknown=5]="Unknown",t.getNodeAtOffset=s,t.getNodePath=function(e,t){for(var n=s(e,t),r=[];n;)r.unshift(n),n=n.parent;return r},t.getParentDeclaration=function(e){var t=e.findParent(i.Declaration);return t&&t.getValue()&&t.getValue().encloses(e)?t:null};var o=function(){function e(e,t,n){void 0===e&&(e=-1),void 0===t&&(t=-1),this.parent=null,this.offset=e,this.length=t,n&&(this.nodeType=n)}return Object.defineProperty(e.prototype,"end",{get:function(){return this.offset+this.length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"type",{get:function(){return this.nodeType||i.Undefined},set:function(e){this.nodeType=e},enumerable:!0,configurable:!0}),e.prototype.getTextProvider=function(){for(var e=this;e&&!e.textProvider;)e=e.parent;return e?e.textProvider:function(){return"unknown"}},e.prototype.getText=function(){return this.getTextProvider()(this.offset,this.length)},e.prototype.matches=function(e){return this.length===e.length&&this.getTextProvider()(this.offset,this.length)===e},e.prototype.startsWith=function(e){return this.length>=e.length&&this.getTextProvider()(this.offset,e.length)===e},e.prototype.endsWith=function(e){return this.length>=e.length&&this.getTextProvider()(this.end-e.length,e.length)===e},e.prototype.accept=function(e){if(e(this)&&this.children)for(var t=0,n=this.children;tthis.end||-1===this.length)&&(this.length=t-this.offset)},e.prototype.hasChildren=function(){return this.children&&0=e?t&&n.findChildAtOffset(e,!0)||n:null},e.prototype.encloses=function(e){return this.offset<=e.offset&&this.offset+this.length>=e.offset+e.length},e.prototype.getParent=function(){for(var e=this.parent;e instanceof a;)e=e.parent;return e},e.prototype.findParent=function(e){for(var t=this;t&&t.type!==e;)t=t.parent;return t},e.prototype.setData=function(e,t){this.options||(this.options={}),this.options[e]=t},e.prototype.getData=function(e){return this.options&&this.options.hasOwnProperty(e)?this.options[e]:null},e}(),a=function(r){function e(e,t){void 0===t&&(t=-1);var n=r.call(this,-1,-1)||this;return n.attachTo(e,t),n.offset=-1,n.length=-1,n}return __extends(e,r),e}(t.Node=o);t.Nodelist=a;var l=function(r){function e(e,t){var n=r.call(this,e,t)||this;return n.isCustomProperty=!1,n}return __extends(e,r),Object.defineProperty(e.prototype,"type",{get:function(){return i.Identifier},enumerable:!0,configurable:!0}),e.prototype.containsInterpolation=function(){return this.hasChildren()},e}(o);t.Identifier=l;var c=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.Stylesheet},enumerable:!0,configurable:!0}),e.prototype.setName=function(e){this.name=e},e}(o);t.Stylesheet=c;var d=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.Declarations},enumerable:!0,configurable:!0}),e}(o);t.Declarations=d;var h=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),e.prototype.getDeclarations=function(){return this.declarations},e.prototype.setDeclarations=function(e){return this.setNode("declarations",e)},e}(o),p=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.Ruleset},enumerable:!0,configurable:!0}),e.prototype.getSelectors=function(){return this.selectors||(this.selectors=new a(this)),this.selectors},e.prototype.isNested=function(){return!!this.parent&&null!==this.parent.findParent(i.Declarations)},e}(t.BodyDeclaration=h);t.RuleSet=p;var m=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.Selector},enumerable:!0,configurable:!0}),e}(o);t.Selector=m;var u=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.SimpleSelector},enumerable:!0,configurable:!0}),e}(o);t.SimpleSelector=u;var f=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.AtApplyRule},enumerable:!0,configurable:!0}),e.prototype.setIdentifier=function(e){return this.setNode("identifier",e,0)},e.prototype.getIdentifier=function(){return this.identifier},e.prototype.getName=function(){return this.identifier?this.identifier.getText():""},e}(o);t.AtApplyRule=f;var g=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),e}(o),b=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.CustomPropertyDeclaration},enumerable:!0,configurable:!0}),e.prototype.setProperty=function(e){return this.setNode("property",e)},e.prototype.getProperty=function(){return this.property},e.prototype.setValue=function(e){return this.setNode("value",e)},e.prototype.getValue=function(){return this.value},e.prototype.setPropertySet=function(e){return this.setNode("propertySet",e)},e.prototype.getPropertySet=function(){return this.propertySet},e}(t.AbstractDeclaration=g);t.CustomPropertyDeclaration=b;var y=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.CustomPropertySet},enumerable:!0,configurable:!0}),e}(h);t.CustomPropertySet=y;var w=function(n){function r(e,t){return n.call(this,e,t)||this}return __extends(r,n),Object.defineProperty(r.prototype,"type",{get:function(){return i.Declaration},enumerable:!0,configurable:!0}),r.prototype.setProperty=function(e){return this.setNode("property",e)},r.prototype.getProperty=function(){return this.property},r.prototype.getFullPropertyName=function(){var e=this.property?this.property.getName():"unknown";if(this.parent instanceof d&&this.parent.getParent()instanceof D){var t=this.parent.getParent().getParent();if(t instanceof r)return t.getFullPropertyName()+e}return e},r.prototype.getNonPrefixedPropertyName=function(){var e=this.getFullPropertyName();if(e&&"-"===e.charAt(0)){var t=e.indexOf("-",1);if(-1!==t)return e.substring(t+1)}return e},r.prototype.setValue=function(e){return this.setNode("value",e)},r.prototype.getValue=function(){return this.value},r.prototype.setNestedProperties=function(e){return this.setNode("nestedProprties",e)},r.prototype.getNestedProperties=function(){return this.nestedProprties},r}(g);t.Declaration=w;var v=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.Property},enumerable:!0,configurable:!0}),e.prototype.setIdentifier=function(e){return this.setNode("identifier",e)},e.prototype.getIdentifier=function(){return this.identifier},e.prototype.getName=function(){return this.getText()},e.prototype.isCustomProperty=function(){return this.identifier.isCustomProperty},e}(o);t.Property=v;var x=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.Invocation},enumerable:!0,configurable:!0}),e.prototype.getArguments=function(){return this.arguments||(this.arguments=new a(this)),this.arguments},e}(o),k=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.Function},enumerable:!0,configurable:!0}),e.prototype.setIdentifier=function(e){return this.setNode("identifier",e,0)},e.prototype.getIdentifier=function(){return this.identifier},e.prototype.getName=function(){return this.identifier?this.identifier.getText():""},e}(t.Invocation=x);t.Function=k;var S=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.FunctionParameter},enumerable:!0,configurable:!0}),e.prototype.setIdentifier=function(e){return this.setNode("identifier",e,0)},e.prototype.getIdentifier=function(){return this.identifier},e.prototype.getName=function(){return this.identifier?this.identifier.getText():""},e.prototype.setDefaultValue=function(e){return this.setNode("defaultValue",e,0)},e.prototype.getDefaultValue=function(){return this.defaultValue},e}(o);t.FunctionParameter=S;var T=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.FunctionArgument},enumerable:!0,configurable:!0}),e.prototype.setIdentifier=function(e){return this.setNode("identifier",e,0)},e.prototype.getIdentifier=function(){return this.identifier},e.prototype.getName=function(){return this.identifier?this.identifier.getText():""},e.prototype.setValue=function(e){return this.setNode("value",e,0)},e.prototype.getValue=function(){return this.value},e}(o);t.FunctionArgument=T;var C=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.If},enumerable:!0,configurable:!0}),e.prototype.setExpression=function(e){return this.setNode("expression",e,0)},e.prototype.setElseClause=function(e){return this.setNode("elseClause",e)},e}(h);t.IfStatement=C;var F=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.For},enumerable:!0,configurable:!0}),e.prototype.setVariable=function(e){return this.setNode("variable",e,0)},e}(h);t.ForStatement=F;var E=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.Each},enumerable:!0,configurable:!0}),e.prototype.getVariables=function(){return this.variables||(this.variables=new a(this)),this.variables},e}(h);t.EachStatement=E;var I=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.While},enumerable:!0,configurable:!0}),e}(h);t.WhileStatement=I;var P=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.Else},enumerable:!0,configurable:!0}),e}(h);t.ElseStatement=P;var _=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.FunctionDeclaration},enumerable:!0,configurable:!0}),e.prototype.setIdentifier=function(e){return this.setNode("identifier",e,0)},e.prototype.getIdentifier=function(){return this.identifier},e.prototype.getName=function(){return this.identifier?this.identifier.getText():""},e.prototype.getParameters=function(){return this.parameters||(this.parameters=new a(this)),this.parameters},e}(h);t.FunctionDeclaration=_;var A=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.ViewPort},enumerable:!0,configurable:!0}),e}(h);t.ViewPort=A;var z=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.FontFace},enumerable:!0,configurable:!0}),e}(h);t.FontFace=z;var D=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.NestedProperties},enumerable:!0,configurable:!0}),e}(h);t.NestedProperties=D;var R=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.Keyframe},enumerable:!0,configurable:!0}),e.prototype.setKeyword=function(e){return this.setNode("keyword",e,0)},e.prototype.getKeyword=function(){return this.keyword},e.prototype.setIdentifier=function(e){return this.setNode("identifier",e,0)},e.prototype.getIdentifier=function(){return this.identifier},e.prototype.getName=function(){return this.identifier?this.identifier.getText():""},e}(h);t.Keyframe=R;var O=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.KeyframeSelector},enumerable:!0,configurable:!0}),e}(h);t.KeyframeSelector=O;var N=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.Import},enumerable:!0,configurable:!0}),e.prototype.setMedialist=function(e){return!!e&&(e.attachTo(this),this.medialist=e,!0)},e}(o);t.Import=N;var U=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.Namespace},enumerable:!0,configurable:!0}),e}(o);t.Namespace=U;var L=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.Media},enumerable:!0,configurable:!0}),e}(h);t.Media=L;var M=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.Supports},enumerable:!0,configurable:!0}),e}(h);t.Supports=M;var j=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.Document},enumerable:!0,configurable:!0}),e}(h);t.Document=j;var V=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),e.prototype.getMediums=function(){return this.mediums||(this.mediums=new a(this)),this.mediums},e}(o);t.Medialist=V;var B=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.MediaQuery},enumerable:!0,configurable:!0}),e}(o);t.MediaQuery=B;var K=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.SupportsCondition},enumerable:!0,configurable:!0}),e}(o);t.SupportsCondition=K;var q=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.Page},enumerable:!0,configurable:!0}),e}(h);t.Page=q;var $=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.PageBoxMarginBox},enumerable:!0,configurable:!0}),e}(h);t.PageBoxMarginBox=$;var W=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.Expression},enumerable:!0,configurable:!0}),e}(o);t.Expression=W;var G=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.BinaryExpression},enumerable:!0,configurable:!0}),e.prototype.setLeft=function(e){return this.setNode("left",e)},e.prototype.getLeft=function(){return this.left},e.prototype.setRight=function(e){return this.setNode("right",e)},e.prototype.getRight=function(){return this.right},e.prototype.setOperator=function(e){return this.setNode("operator",e)},e.prototype.getOperator=function(){return this.operator},e}(o);t.BinaryExpression=G;var H=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.Term},enumerable:!0,configurable:!0}),e.prototype.setOperator=function(e){return this.setNode("operator",e)},e.prototype.getOperator=function(){return this.operator},e.prototype.setExpression=function(e){return this.setNode("expression",e)},e.prototype.getExpression=function(){return this.expression},e}(o);t.Term=H;var J=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.AttributeSelector},enumerable:!0,configurable:!0}),e.prototype.setNamespacePrefix=function(e){return this.setNode("namespacePrefix",e)},e.prototype.getNamespacePrefix=function(){return this.namespacePrefix},e.prototype.setIdentifier=function(e){return this.setNode("identifier",e)},e.prototype.getIdentifier=function(){return this.identifier},e.prototype.setOperator=function(e){return this.setNode("operator",e)},e.prototype.getOperator=function(){return this.operator},e.prototype.setValue=function(e){return this.setNode("value",e)},e.prototype.getValue=function(){return this.value},e}(o);t.AttributeSelector=J;var X=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.Operator},enumerable:!0,configurable:!0}),e}(o);t.Operator=X;var Y=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.HexColorValue},enumerable:!0,configurable:!0}),e}(o);t.HexColorValue=Y;var Q=function(n){function e(e,t){return n.call(this,e,t)||this}return __extends(e,n),Object.defineProperty(e.prototype,"type",{get:function(){return i.NumericValue},enumerable:!0,configurable:!0}),e.prototype.getValue=function(){for(var e,t=this.getText(),n=0,r=".".charCodeAt(0),i="0".charCodeAt(0),s="9".charCodeAt(0),o=0,a=t.length;o or