From 3d2c014f698bab6e901690ff73d867eab68beeae Mon Sep 17 00:00:00 2001 From: jansenk Date: Fri, 14 Jul 2023 11:35:39 -0400 Subject: [PATCH 1/7] feat: make studio UI aware of override --- .../openassessmentblock/edit/oa_edit_peer_assessment.html | 8 +++++++- openassessment/xblock/static/sass/oa/elements/_staff.scss | 3 ++- openassessment/xblock/studio_mixin.py | 3 +++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/openassessment/templates/openassessmentblock/edit/oa_edit_peer_assessment.html b/openassessment/templates/openassessmentblock/edit/oa_edit_peer_assessment.html index ac2c0924f6..d4f8c69532 100644 --- a/openassessment/templates/openassessmentblock/edit/oa_edit_peer_assessment.html +++ b/openassessment/templates/openassessmentblock/edit/oa_edit_peer_assessment.html @@ -41,12 +41,18 @@
  • -

    {% trans "When enabled, learners who have received at least 30% of the required \"Graded By\" peer reviews and who have waited longer than 7 days for a peer review will be assigned a peer review grade using available peer reviews." %}

    + {% if force_on_flexible_peer_openassessments %} +

    + + {% trans "This feature is being enabled by the course-level setting. It can be found under the Open Response Assessment Settings card on the Pages & Resources studio page." %} +

    + {% endif %}
  • diff --git a/openassessment/xblock/static/sass/oa/elements/_staff.scss b/openassessment/xblock/static/sass/oa/elements/_staff.scss index 770f38c4e7..51338967d6 100644 --- a/openassessment/xblock/static/sass/oa/elements/_staff.scss +++ b/openassessment/xblock/static/sass/oa/elements/_staff.scss @@ -342,7 +342,8 @@ } // Staff edit settings form -#oa_basic_settings_editor { +#oa_basic_settings_editor, +#oa_peer_assessment_editor { .warning-banner { background: #fffaed; border: 1px solid #ffd875; diff --git a/openassessment/xblock/studio_mixin.py b/openassessment/xblock/studio_mixin.py index 2675a65f87..66b43c7121 100644 --- a/openassessment/xblock/studio_mixin.py +++ b/openassessment/xblock/studio_mixin.py @@ -161,6 +161,8 @@ def _parse_date_safe(date): rubric_reuse_data = {} if self.is_rubric_reuse_enabled: rubric_reuse_data = self.get_other_ora_blocks_for_rubric_editor_context() + + course_settings = self.get_course_workflow_settings() return { 'prompts': self.prompts, @@ -196,6 +198,7 @@ def _parse_date_safe(date): 'rubric_reuse_enabled': self.is_rubric_reuse_enabled, 'rubric_reuse_data': rubric_reuse_data, 'block_location': str(self.location), + 'force_on_flexible_peer_openassessments': course_settings.get('force_on_flexible_peer_openassessments', False) } @XBlock.json_handler From 5a6c6cf654e34bff2af5fb118275aeef53febbf3 Mon Sep 17 00:00:00 2001 From: jansenk Date: Fri, 14 Jul 2023 11:43:00 -0400 Subject: [PATCH 2/7] style: quality --- openassessment/xblock/studio_mixin.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/openassessment/xblock/studio_mixin.py b/openassessment/xblock/studio_mixin.py index 66b43c7121..7e310a505a 100644 --- a/openassessment/xblock/studio_mixin.py +++ b/openassessment/xblock/studio_mixin.py @@ -161,7 +161,7 @@ def _parse_date_safe(date): rubric_reuse_data = {} if self.is_rubric_reuse_enabled: rubric_reuse_data = self.get_other_ora_blocks_for_rubric_editor_context() - + course_settings = self.get_course_workflow_settings() return { @@ -198,7 +198,9 @@ def _parse_date_safe(date): 'rubric_reuse_enabled': self.is_rubric_reuse_enabled, 'rubric_reuse_data': rubric_reuse_data, 'block_location': str(self.location), - 'force_on_flexible_peer_openassessments': course_settings.get('force_on_flexible_peer_openassessments', False) + 'force_on_flexible_peer_openassessments': course_settings.get( + 'force_on_flexible_peer_openassessments', False + ) } @XBlock.json_handler From fe1e9449e3d285f3db333d3bd8a78c42b8c430c1 Mon Sep 17 00:00:00 2001 From: jansenk Date: Fri, 14 Jul 2023 11:53:16 -0400 Subject: [PATCH 3/7] chore: update local pylintrc from edx_lint --- pylintrc | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 106 insertions(+), 4 deletions(-) diff --git a/pylintrc b/pylintrc index 036b3fc6ea..568774f130 100644 --- a/pylintrc +++ b/pylintrc @@ -2,7 +2,7 @@ # ** DO NOT EDIT THIS FILE ** # *************************** # -# This file was generated by edx-lint: https://github.com/openedx/edx-lint +# This file was generated by edx-lint: https://github.com/edx/edx-lint # # If you want to change this file, you have two choices, depending on whether # you want to make a local change that applies only to this repo, or whether @@ -28,7 +28,7 @@ # CENTRAL CHANGE: # # 1. Edit the pylintrc file in the edx-lint repo at -# https://github.com/openedx/edx-lint/blob/master/edx_lint/files/pylintrc +# https://github.com/edx/edx-lint/blob/master/edx_lint/files/pylintrc # # 2. install the updated version of edx-lint (in edx-lint): # @@ -64,7 +64,7 @@ # SERIOUSLY. # # ------------------------------ -# Generated by edx-lint version: 5.2.5 +# Generated by edx-lint version: 5.2.1 # ------------------------------ [MASTER] ignore = .git, .tox, migrations, acceptance @@ -102,12 +102,20 @@ enable = cell-var-from-loop, confusing-with-statement, continue-in-finally, + cyclical-import, dangerous-default-value, + dict-items-not-iterating, + dict-keys-not-iterating, + dict-values-not-iterating, duplicate-argument-name, duplicate-bases, duplicate-except, duplicate-key, + eq-without-hash, + exception-escape, + exception-message-attribute, expression-not-assigned, + filter-builtin-not-iterating, format-combined-specification, format-needs-mapping, function-redefined, @@ -115,26 +123,33 @@ enable = import-error, import-self, inconsistent-mro, + indexing-exception, inherit-non-class, init-is-generator, invalid-all-object, + invalid-encoded-data, invalid-format-index, invalid-length-returned, invalid-sequence-index, invalid-slice-index, invalid-slots-object, invalid-slots, + invalid-str-codec, invalid-unary-operand-type, logging-too-few-args, logging-too-many-args, logging-unsupported-format, lost-exception, + map-builtin-not-iterating, method-hidden, misplaced-bare-raise, misplaced-future, missing-format-argument-key, missing-format-attribute, missing-format-string-key, + missing-super-argument, + mixed-fomat-string, + model-unicode-not-callable, no-member, no-method-argument, no-name-in-module, @@ -143,6 +158,8 @@ enable = non-iterator-returned, non-parent-method-called, nonexistent-operator, + nonimplemented-raised, + nonstandard-exception, not-a-mapping, not-an-iterable, not-callable, @@ -150,25 +167,35 @@ enable = not-in-loop, pointless-statement, pointless-string-statement, + property-on-old-class, raising-bad-type, raising-non-exception, + raising-string, + range-builtin-not-iterating, redefined-builtin, + redefined-in-handler, redefined-outer-name, + redefined-variable-type, redundant-keyword-arg, + relative-import, repeated-keyword, return-arg-in-generator, return-in-init, return-outside-function, signature-differs, + slots-on-old-class, super-init-not-called, super-method-not-called, + super-on-old-class, syntax-error, + sys-max-int, test-inherits-tests, too-few-format-args, too-many-format-args, too-many-function-args, translation-of-non-string, truncated-format-string, + unbalance-tuple-unpacking, undefined-all-variable, undefined-loop-variable, undefined-variable, @@ -184,8 +211,11 @@ enable = used-before-assignment, using-constant-test, yield-outside-function, + zip-builtin-not-iterating, astroid-error, + django-not-available-placeholder, + django-not-available, fatal, method-check-failed, parse-error, @@ -207,6 +237,7 @@ enable = bad-classmethod-argument, bad-mcs-classmethod-argument, bad-mcs-method-argument, + bad-whitespace, bare-except, broad-except, consider-iterating-dictionary, @@ -216,10 +247,16 @@ enable = literal-used-as-attribute, logging-format-interpolation, logging-not-lazy, + metaclass-assignment, + model-has-unicode, + model-missing-unicode, + model-no-explicit-unicode, multiple-imports, multiple-statements, no-classmethod-decorator, no-staticmethod-decorator, + old-raise-syntax, + old-style-class, protected-access, redundant-unittest-assert, reimported, @@ -247,6 +284,7 @@ enable = wrong-import-position, missing-final-newline, + mixed-indentation, mixed-line-endings, trailing-newlines, trailing-whitespace, @@ -257,7 +295,25 @@ enable = deprecated-pragma, unrecognized-inline-option, useless-suppression, + + cmp-method, + coerce-method, + delslice-method, + dict-iter-method, + dict-view-method, + div-method, + getslice-method, + hex-method, + idiv-method, + next-method-called, + next-method-defined, + nonzero-method, + oct-method, + rdiv-method, + setslice-method, + using-cmp-argument, disable = + bad-continuation, bad-indentation, consider-using-f-string, duplicate-code, @@ -266,7 +322,12 @@ disable = global-statement, invalid-name, locally-disabled, + locally-enabled, + lowercase-l-suffix, + misplaced-comparison-constant, no-else-return, + no-init, + no-self-use, suppressed-message, too-few-public-methods, too-many-ancestors, @@ -285,6 +346,44 @@ disable = feature-toggle-needs-doc, illegal-waffle-usage, + apply-builtin, + backtick, + bad-python3-import, + basestring-builtin, + buffer-builtin, + cmp-builtin, + coerce-builtin, + deprecated-itertools-function, + deprecated-operator-function, + deprecated-str-translate-call, + deprecated-string-function, + deprecated-sys-function, + deprecated-types-field, + deprecated-urllib-function, + execfile-builtin, + file-builtin, + import-star-module-level, + input-builtin, + intern-builtin, + long-builtin, + long-suffix, + no-absolute-import, + non-ascii-bytes-literal, + old-division, + old-ne-operator, + old-octal-literal, + parameter-unpacking, + print-statement, + raw_input-builtin, + reduce-builtin, + reload-builtin, + round-builtin, + standarderror-builtin, + unichr-builtin, + unicode-builtin, + unpacking-in-except, + xrange-builtin, + logging-fstring-interpolation, superfluous-parens, old-style-class, @@ -302,10 +401,12 @@ disable = [REPORTS] output-format = text +files-output = no reports = no score = no [BASIC] +bad-functions = map,filter,apply,input module-rgx = (([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ const-rgx = (([A-Z_][A-Z0-9_]*)|(__.*__)|log|urlpatterns)$ class-rgx = [A-Z_][a-zA-Z0-9]+$ @@ -325,6 +426,7 @@ docstring-min-length = 5 max-line-length = 120 ignore-long-lines = ^\s*(# )?((?)|(\.\. \w+: .*))$ single-line-if-stmt = no +no-space-check = trailing-comma,dict-separator max-module-lines = 1000 indent-string = ' ' @@ -395,4 +497,4 @@ int-import-graph = [EXCEPTIONS] overgeneral-exceptions = Exception -# 0c410ff35825bc7444c07d5053bc7fddc4aaa50c +# 86af205b56da4a747e183dec323ec139b28d7864 From beafbcc1756b0aa180f47576941ce5774ad90a39 Mon Sep 17 00:00:00 2001 From: jansenk Date: Fri, 14 Jul 2023 12:02:34 -0400 Subject: [PATCH 4/7] Revert "chore: update local pylintrc from edx_lint" This reverts commit fe1e9449e3d285f3db333d3bd8a78c42b8c430c1. --- pylintrc | 110 ++----------------------------------------------------- 1 file changed, 4 insertions(+), 106 deletions(-) diff --git a/pylintrc b/pylintrc index 568774f130..036b3fc6ea 100644 --- a/pylintrc +++ b/pylintrc @@ -2,7 +2,7 @@ # ** DO NOT EDIT THIS FILE ** # *************************** # -# This file was generated by edx-lint: https://github.com/edx/edx-lint +# This file was generated by edx-lint: https://github.com/openedx/edx-lint # # If you want to change this file, you have two choices, depending on whether # you want to make a local change that applies only to this repo, or whether @@ -28,7 +28,7 @@ # CENTRAL CHANGE: # # 1. Edit the pylintrc file in the edx-lint repo at -# https://github.com/edx/edx-lint/blob/master/edx_lint/files/pylintrc +# https://github.com/openedx/edx-lint/blob/master/edx_lint/files/pylintrc # # 2. install the updated version of edx-lint (in edx-lint): # @@ -64,7 +64,7 @@ # SERIOUSLY. # # ------------------------------ -# Generated by edx-lint version: 5.2.1 +# Generated by edx-lint version: 5.2.5 # ------------------------------ [MASTER] ignore = .git, .tox, migrations, acceptance @@ -102,20 +102,12 @@ enable = cell-var-from-loop, confusing-with-statement, continue-in-finally, - cyclical-import, dangerous-default-value, - dict-items-not-iterating, - dict-keys-not-iterating, - dict-values-not-iterating, duplicate-argument-name, duplicate-bases, duplicate-except, duplicate-key, - eq-without-hash, - exception-escape, - exception-message-attribute, expression-not-assigned, - filter-builtin-not-iterating, format-combined-specification, format-needs-mapping, function-redefined, @@ -123,33 +115,26 @@ enable = import-error, import-self, inconsistent-mro, - indexing-exception, inherit-non-class, init-is-generator, invalid-all-object, - invalid-encoded-data, invalid-format-index, invalid-length-returned, invalid-sequence-index, invalid-slice-index, invalid-slots-object, invalid-slots, - invalid-str-codec, invalid-unary-operand-type, logging-too-few-args, logging-too-many-args, logging-unsupported-format, lost-exception, - map-builtin-not-iterating, method-hidden, misplaced-bare-raise, misplaced-future, missing-format-argument-key, missing-format-attribute, missing-format-string-key, - missing-super-argument, - mixed-fomat-string, - model-unicode-not-callable, no-member, no-method-argument, no-name-in-module, @@ -158,8 +143,6 @@ enable = non-iterator-returned, non-parent-method-called, nonexistent-operator, - nonimplemented-raised, - nonstandard-exception, not-a-mapping, not-an-iterable, not-callable, @@ -167,35 +150,25 @@ enable = not-in-loop, pointless-statement, pointless-string-statement, - property-on-old-class, raising-bad-type, raising-non-exception, - raising-string, - range-builtin-not-iterating, redefined-builtin, - redefined-in-handler, redefined-outer-name, - redefined-variable-type, redundant-keyword-arg, - relative-import, repeated-keyword, return-arg-in-generator, return-in-init, return-outside-function, signature-differs, - slots-on-old-class, super-init-not-called, super-method-not-called, - super-on-old-class, syntax-error, - sys-max-int, test-inherits-tests, too-few-format-args, too-many-format-args, too-many-function-args, translation-of-non-string, truncated-format-string, - unbalance-tuple-unpacking, undefined-all-variable, undefined-loop-variable, undefined-variable, @@ -211,11 +184,8 @@ enable = used-before-assignment, using-constant-test, yield-outside-function, - zip-builtin-not-iterating, astroid-error, - django-not-available-placeholder, - django-not-available, fatal, method-check-failed, parse-error, @@ -237,7 +207,6 @@ enable = bad-classmethod-argument, bad-mcs-classmethod-argument, bad-mcs-method-argument, - bad-whitespace, bare-except, broad-except, consider-iterating-dictionary, @@ -247,16 +216,10 @@ enable = literal-used-as-attribute, logging-format-interpolation, logging-not-lazy, - metaclass-assignment, - model-has-unicode, - model-missing-unicode, - model-no-explicit-unicode, multiple-imports, multiple-statements, no-classmethod-decorator, no-staticmethod-decorator, - old-raise-syntax, - old-style-class, protected-access, redundant-unittest-assert, reimported, @@ -284,7 +247,6 @@ enable = wrong-import-position, missing-final-newline, - mixed-indentation, mixed-line-endings, trailing-newlines, trailing-whitespace, @@ -295,25 +257,7 @@ enable = deprecated-pragma, unrecognized-inline-option, useless-suppression, - - cmp-method, - coerce-method, - delslice-method, - dict-iter-method, - dict-view-method, - div-method, - getslice-method, - hex-method, - idiv-method, - next-method-called, - next-method-defined, - nonzero-method, - oct-method, - rdiv-method, - setslice-method, - using-cmp-argument, disable = - bad-continuation, bad-indentation, consider-using-f-string, duplicate-code, @@ -322,12 +266,7 @@ disable = global-statement, invalid-name, locally-disabled, - locally-enabled, - lowercase-l-suffix, - misplaced-comparison-constant, no-else-return, - no-init, - no-self-use, suppressed-message, too-few-public-methods, too-many-ancestors, @@ -346,44 +285,6 @@ disable = feature-toggle-needs-doc, illegal-waffle-usage, - apply-builtin, - backtick, - bad-python3-import, - basestring-builtin, - buffer-builtin, - cmp-builtin, - coerce-builtin, - deprecated-itertools-function, - deprecated-operator-function, - deprecated-str-translate-call, - deprecated-string-function, - deprecated-sys-function, - deprecated-types-field, - deprecated-urllib-function, - execfile-builtin, - file-builtin, - import-star-module-level, - input-builtin, - intern-builtin, - long-builtin, - long-suffix, - no-absolute-import, - non-ascii-bytes-literal, - old-division, - old-ne-operator, - old-octal-literal, - parameter-unpacking, - print-statement, - raw_input-builtin, - reduce-builtin, - reload-builtin, - round-builtin, - standarderror-builtin, - unichr-builtin, - unicode-builtin, - unpacking-in-except, - xrange-builtin, - logging-fstring-interpolation, superfluous-parens, old-style-class, @@ -401,12 +302,10 @@ disable = [REPORTS] output-format = text -files-output = no reports = no score = no [BASIC] -bad-functions = map,filter,apply,input module-rgx = (([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ const-rgx = (([A-Z_][A-Z0-9_]*)|(__.*__)|log|urlpatterns)$ class-rgx = [A-Z_][a-zA-Z0-9]+$ @@ -426,7 +325,6 @@ docstring-min-length = 5 max-line-length = 120 ignore-long-lines = ^\s*(# )?((?)|(\.\. \w+: .*))$ single-line-if-stmt = no -no-space-check = trailing-comma,dict-separator max-module-lines = 1000 indent-string = ' ' @@ -497,4 +395,4 @@ int-import-graph = [EXCEPTIONS] overgeneral-exceptions = Exception -# 86af205b56da4a747e183dec323ec139b28d7864 +# 0c410ff35825bc7444c07d5053bc7fddc4aaa50c From 5a9b68ee83dc05f4dcc25d93fc0a3c26e7ba8cbb Mon Sep 17 00:00:00 2001 From: jansenk Date: Fri, 14 Jul 2023 12:23:14 -0400 Subject: [PATCH 5/7] chore: generate static files --- .../xblock/static/dist/manifest.json | 24 +- .../dist/openassessment-editor-textarea.js | 2 +- .../dist/openassessment-editor-tinymce.js | 2 +- ...penassessment-lms.070b37d817f5965d8b09.css | 3 + ...penassessment-lms.070b37d817f5965d8b09.js} | 4 +- ...penassessment-lms.967dad15c001a5dc6a5e.css | 3 - ...penassessment-lms.e009f195cfd3e23b44e3.css | 3 - ...openassessment-lms.e009f195cfd3e23b44e3.js | 376 ------------------ .../xblock/static/dist/openassessment-lms.js | 6 +- ...enassessment-ltr.70fa5cad14d7729c7d6e.css} | 4 +- ...penassessment-ltr.70fa5cad14d7729c7d6e.js} | 2 +- ...penassessment-ltr.af4f203c872dac1a24b5.css | 13 - ...openassessment-ltr.b9eeb00dfc7524a80658.js | 2 - .../xblock/static/dist/openassessment-ltr.css | 28 +- .../xblock/static/dist/openassessment-ltr.js | 2 +- ...penassessment-rtl.b8d173da7a201af6385c.css | 13 - .../xblock/static/dist/openassessment-rtl.css | 28 +- ...enassessment-rtl.e023263ad9da2305253a.css} | 4 +- ...penassessment-rtl.e023263ad9da2305253a.js} | 2 +- ...openassessment-rtl.ef543a27286a069bd958.js | 2 - .../xblock/static/dist/openassessment-rtl.js | 2 +- ...nassessment-studio.1ef78b4390a9cfa2e9b1.js | 33 -- .../static/dist/openassessment-studio.js | 4 +- 23 files changed, 66 insertions(+), 496 deletions(-) create mode 100644 openassessment/xblock/static/dist/openassessment-lms.070b37d817f5965d8b09.css rename openassessment/xblock/static/dist/{openassessment-lms.967dad15c001a5dc6a5e.js => openassessment-lms.070b37d817f5965d8b09.js} (85%) delete mode 100644 openassessment/xblock/static/dist/openassessment-lms.967dad15c001a5dc6a5e.css delete mode 100644 openassessment/xblock/static/dist/openassessment-lms.e009f195cfd3e23b44e3.css delete mode 100644 openassessment/xblock/static/dist/openassessment-lms.e009f195cfd3e23b44e3.js rename openassessment/xblock/static/dist/{openassessment-ltr.b9eeb00dfc7524a80658.css => openassessment-ltr.70fa5cad14d7729c7d6e.css} (96%) rename openassessment/xblock/static/dist/{openassessment-ltr.af4f203c872dac1a24b5.js => openassessment-ltr.70fa5cad14d7729c7d6e.js} (93%) delete mode 100644 openassessment/xblock/static/dist/openassessment-ltr.af4f203c872dac1a24b5.css delete mode 100644 openassessment/xblock/static/dist/openassessment-ltr.b9eeb00dfc7524a80658.js delete mode 100644 openassessment/xblock/static/dist/openassessment-rtl.b8d173da7a201af6385c.css rename openassessment/xblock/static/dist/{openassessment-rtl.ef543a27286a069bd958.css => openassessment-rtl.e023263ad9da2305253a.css} (96%) rename openassessment/xblock/static/dist/{openassessment-rtl.b8d173da7a201af6385c.js => openassessment-rtl.e023263ad9da2305253a.js} (93%) delete mode 100644 openassessment/xblock/static/dist/openassessment-rtl.ef543a27286a069bd958.js delete mode 100644 openassessment/xblock/static/dist/openassessment-studio.1ef78b4390a9cfa2e9b1.js diff --git a/openassessment/xblock/static/dist/manifest.json b/openassessment/xblock/static/dist/manifest.json index ff367a3eba..7f36b515a1 100644 --- a/openassessment/xblock/static/dist/manifest.json +++ b/openassessment/xblock/static/dist/manifest.json @@ -4,18 +4,18 @@ "openassessment-editor-textarea.js.map": "/openassessment-editor-textarea.b8f866ba96a1d2ad92a4.js.map", "openassessment-editor-tinymce.js": "/openassessment-editor-tinymce.2cc0cab55c3be729265e.js", "openassessment-editor-tinymce.js.map": "/openassessment-editor-tinymce.2cc0cab55c3be729265e.js.map", - "openassessment-lms.css": "/openassessment-lms.967dad15c001a5dc6a5e.css", - "openassessment-lms.js": "/openassessment-lms.967dad15c001a5dc6a5e.js", - "openassessment-lms.css.map": "/openassessment-lms.967dad15c001a5dc6a5e.css.map", - "openassessment-lms.js.map": "/openassessment-lms.967dad15c001a5dc6a5e.js.map", - "openassessment-ltr.css": "/openassessment-ltr.b9eeb00dfc7524a80658.css", - "openassessment-ltr.js": "/openassessment-ltr.b9eeb00dfc7524a80658.js", - "openassessment-ltr.css.map": "/openassessment-ltr.b9eeb00dfc7524a80658.css.map", - "openassessment-ltr.js.map": "/openassessment-ltr.b9eeb00dfc7524a80658.js.map", - "openassessment-rtl.css": "/openassessment-rtl.ef543a27286a069bd958.css", - "openassessment-rtl.js": "/openassessment-rtl.ef543a27286a069bd958.js", - "openassessment-rtl.css.map": "/openassessment-rtl.ef543a27286a069bd958.css.map", - "openassessment-rtl.js.map": "/openassessment-rtl.ef543a27286a069bd958.js.map", + "openassessment-lms.css": "/openassessment-lms.070b37d817f5965d8b09.css", + "openassessment-lms.js": "/openassessment-lms.070b37d817f5965d8b09.js", + "openassessment-lms.css.map": "/openassessment-lms.070b37d817f5965d8b09.css.map", + "openassessment-lms.js.map": "/openassessment-lms.070b37d817f5965d8b09.js.map", + "openassessment-ltr.css": "/openassessment-ltr.70fa5cad14d7729c7d6e.css", + "openassessment-ltr.js": "/openassessment-ltr.70fa5cad14d7729c7d6e.js", + "openassessment-ltr.css.map": "/openassessment-ltr.70fa5cad14d7729c7d6e.css.map", + "openassessment-ltr.js.map": "/openassessment-ltr.70fa5cad14d7729c7d6e.js.map", + "openassessment-rtl.css": "/openassessment-rtl.e023263ad9da2305253a.css", + "openassessment-rtl.js": "/openassessment-rtl.e023263ad9da2305253a.js", + "openassessment-rtl.css.map": "/openassessment-rtl.e023263ad9da2305253a.css.map", + "openassessment-rtl.js.map": "/openassessment-rtl.e023263ad9da2305253a.js.map", "openassessment-studio.js": "/openassessment-studio.13c817d25360969539ff.js", "openassessment-studio.js.map": "/openassessment-studio.13c817d25360969539ff.js.map", "default-avatar.svg": "/95ec738c0b7faac5b5c9126794446bbd.svg" diff --git a/openassessment/xblock/static/dist/openassessment-editor-textarea.js b/openassessment/xblock/static/dist/openassessment-editor-textarea.js index c30080fb1f..9afb82cef3 100644 --- a/openassessment/xblock/static/dist/openassessment-editor-textarea.js +++ b/openassessment/xblock/static/dist/openassessment-editor-textarea.js @@ -63,7 +63,7 @@ /******/ /******/ var hotApplyOnUpdate = true; /******/ // eslint-disable-next-line no-unused-vars -/******/ var hotCurrentHash = "e56ff1b0fe115272f132"; +/******/ var hotCurrentHash = "6fd687af717d3a51ba5e"; /******/ var hotRequestTimeout = 10000; /******/ var hotCurrentModuleData = {}; /******/ var hotCurrentChildModule; diff --git a/openassessment/xblock/static/dist/openassessment-editor-tinymce.js b/openassessment/xblock/static/dist/openassessment-editor-tinymce.js index 129d0d5c85..c4c770356b 100644 --- a/openassessment/xblock/static/dist/openassessment-editor-tinymce.js +++ b/openassessment/xblock/static/dist/openassessment-editor-tinymce.js @@ -63,7 +63,7 @@ /******/ /******/ var hotApplyOnUpdate = true; /******/ // eslint-disable-next-line no-unused-vars -/******/ var hotCurrentHash = "e56ff1b0fe115272f132"; +/******/ var hotCurrentHash = "6fd687af717d3a51ba5e"; /******/ var hotRequestTimeout = 10000; /******/ var hotCurrentModuleData = {}; /******/ var hotCurrentChildModule; diff --git a/openassessment/xblock/static/dist/openassessment-lms.070b37d817f5965d8b09.css b/openassessment/xblock/static/dist/openassessment-lms.070b37d817f5965d8b09.css new file mode 100644 index 0000000000..6cc2f7fbe1 --- /dev/null +++ b/openassessment/xblock/static/dist/openassessment-lms.070b37d817f5965d8b09.css @@ -0,0 +1,3 @@ + + +/*# sourceMappingURL=openassessment-lms.070b37d817f5965d8b09.css.map*/ \ No newline at end of file diff --git a/openassessment/xblock/static/dist/openassessment-lms.967dad15c001a5dc6a5e.js b/openassessment/xblock/static/dist/openassessment-lms.070b37d817f5965d8b09.js similarity index 85% rename from openassessment/xblock/static/dist/openassessment-lms.967dad15c001a5dc6a5e.js rename to openassessment/xblock/static/dist/openassessment-lms.070b37d817f5965d8b09.js index aa6c130835..353f98e4f2 100644 --- a/openassessment/xblock/static/dist/openassessment-lms.967dad15c001a5dc6a5e.js +++ b/openassessment/xblock/static/dist/openassessment-lms.070b37d817f5965d8b09.js @@ -366,11 +366,11 @@ object-assign * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var r="function"==typeof Symbol&&Symbol.for,a=r?Symbol.for("react.element"):60103,i=r?Symbol.for("react.portal"):60106,o=r?Symbol.for("react.fragment"):60107,s=r?Symbol.for("react.strict_mode"):60108,c=r?Symbol.for("react.profiler"):60114,l=r?Symbol.for("react.provider"):60109,u=r?Symbol.for("react.context"):60110,d=r?Symbol.for("react.async_mode"):60111,f=r?Symbol.for("react.concurrent_mode"):60111,p=r?Symbol.for("react.forward_ref"):60112,m=r?Symbol.for("react.suspense"):60113,h=r?Symbol.for("react.suspense_list"):60120,b=r?Symbol.for("react.memo"):60115,M=r?Symbol.for("react.lazy"):60116,_=r?Symbol.for("react.block"):60121,g=r?Symbol.for("react.fundamental"):60117,y=r?Symbol.for("react.responder"):60118,v=r?Symbol.for("react.scope"):60119;function L(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case a:switch(e=e.type){case d:case f:case o:case c:case s:case m:return e;default:switch(e=e&&e.$$typeof){case u:case p:case M:case b:case l:return e;default:return t}}case i:return t}}}function w(e){return L(e)===f}t.AsyncMode=d,t.ConcurrentMode=f,t.ContextConsumer=u,t.ContextProvider=l,t.Element=a,t.ForwardRef=p,t.Fragment=o,t.Lazy=M,t.Memo=b,t.Portal=i,t.Profiler=c,t.StrictMode=s,t.Suspense=m,t.isAsyncMode=function(e){return w(e)||L(e)===d},t.isConcurrentMode=w,t.isContextConsumer=function(e){return L(e)===u},t.isContextProvider=function(e){return L(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===a},t.isForwardRef=function(e){return L(e)===p},t.isFragment=function(e){return L(e)===o},t.isLazy=function(e){return L(e)===M},t.isMemo=function(e){return L(e)===b},t.isPortal=function(e){return L(e)===i},t.isProfiler=function(e){return L(e)===c},t.isStrictMode=function(e){return L(e)===s},t.isSuspense=function(e){return L(e)===m},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===f||e===c||e===s||e===m||e===h||"object"==typeof e&&null!==e&&(e.$$typeof===M||e.$$typeof===b||e.$$typeof===l||e.$$typeof===u||e.$$typeof===p||e.$$typeof===g||e.$$typeof===y||e.$$typeof===v||e.$$typeof===_)},t.typeOf=L},,,,,function(e,t,n){"use strict";n.r(t);n(20);var r=n(10),a=n(168);function i(e,t){for(var n=0;nthis.AUTO_SAVE_WAIT&&this.save()}},{key:"handleResponseChanged",value:function(){if(this.checkSubmissionAbility(),this.responseChanged()){var e=this.checkSaveAbility();this.saveEnabled(e),this.previewEnabled(e),this.errorOnLastSave||this.saveStatus(gettext("Saving draft"),this.ICON_SAVING),this.baseView.unsavedWarningEnabled(!0,this.UNSAVED_WARNING_KEY,gettext("If you leave this page without saving or submitting your response, you will lose any work you have done on the response."))}this.lastChangeTime=Date.now()}},{key:"save",value:function(){var e=this;this.errorOnLastSave||this.saveStatus(gettext("Saving draft..."),this.ICON_SAVING),this.baseView.unsavedWarningEnabled(!1,this.UNSAVED_WARNING_KEY);var t=this,n=this.response();this.server.save(n).done((function(){if(t.savedResponse=n,t.checkSubmissionAbility(),t.response().every((function(e,t){return e===n[t]}))){t.saveEnabled(!1);var r=gettext("Draft saved!");t.saveStatus(r,e.ICON_SAVED),t.baseView.srReadTexts([r]),e.baseView.toggleActionError("save",null),t.errorOnLastSave=!1}})).fail((function(n){t.errorOnLastSave||(t.saveStatus(gettext("Error"),e.ICON_ERROR),t.baseView.toggleActionError("save",n)),t.errorOnLastSave=!0}))}},{key:"handleSubmitClicked",value:function(){if(this.submitEnabled(!1),!this.hasPendingUploadFiles()){var e=this,t=gettext("Confirm Submit Response"),n=gettext("You're about to submit your response for this assignment. After you submit this response, you can't change it or submit a new response.");this.confirmationDialog.confirm(t,n,(function(){return e.submit()}),(function(){return e.submitEnabled(!0)}))}}},{key:"submit",value:function(){var e=this,t=this.response();this.baseView.toggleActionError("response",null),this.server.submit(t).done((function(){e.moveToNextStep()})).fail((function(t,n){"ENOMULTI"===t?e.moveToNextStep():(n&&e.baseView.toggleActionError("submit",n),e.submitEnabled(!0))}))}},{key:"moveToNextStep",value:function(){var e=this.baseView,t=e.getUsageID();this.load(t),e.loadAssessmentModules(t),this.announceStatus=!0,e.unsavedWarningEnabled(!1,this.UNSAVED_WARNING_KEY)}},{key:"prepareUpload",value:function(e,t,n){this.files=null,this.filesType=t,this.filesUploaded=!1;for(var r=!1,a=0;athis.MAX_FILE_SIZE){this.baseView.toggleActionError("upload",gettext("Individual file size must be {max_files_mb}MB or less.").replace("{max_files_mb}",this.MAX_FILES_MB)),r=!0;break}if(!this.isUploadSupported(e[a],t)){this.baseView.toggleActionError("upload",gettext("File upload failed: unsupported file type. Only the supported file types can be uploaded. If you have questions, please reach out to the course team.")),r=!0;break}}if(this.getSavedFileCount(!1)+e.length>this.data.MAXIMUM_FILE_UPLOAD_COUNT){var i=gettext("The maximum number files that can be saved is ")+this.data.MAXIMUM_FILE_UPLOAD_COUNT;this.baseView.toggleActionError("upload",gettext(i)),r=!0}r||(this.baseView.toggleActionError("upload",null),e.length>0&&(this.files=e),this.updateFilesDescriptionsFields(e,n,t)),null===this.files&&$(this.element).find(".file__upload").prop("disabled",!0)}},{key:"updateFilesDescriptionsFields",value:function(e,t,n){var r=$(this.element).find(".files__descriptions").first(),a=null,i=null,o=null,s=null,c=null,l=null,u=!0;this.filesDescriptions=t||[],this.fileNames=[],$(r).show().html("");for(var d=0;d"),(i=$("
    ")).addClass("submission__file__description__label"),i.text("".concat(gettext("Describe ")+e[d].name," ").concat(gettext("(required):"))),i.appendTo(a),(o=$("
    ")).addClass("submission__file__description"),l=$("",m.noCloneChecked=!!te.cloneNode(!0).lastChild.defaultValue;var ie=/^key/,oe=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,se=/^([^.]*)(?:\.(.+)|)/;function ce(){return!0}function le(){return!1}function ue(){try{return o.activeElement}catch(e){}}function de(e,t,n,r,a,i){var o,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)de(e,s,n,r,t[s],i);return e}if(null==r&&null==a?(a=n,r=n=void 0):null==a&&("string"==typeof n?(a=r,r=void 0):(a=r,r=n,n=void 0)),!1===a)a=le;else if(!a)return e;return 1===i&&(o=a,(a=function(e){return h().off(e),o.apply(this,arguments)}).guid=o.guid||(o.guid=h.guid++)),e.each((function(){h.event.add(this,t,a,r,n)}))}h.event={global:{},add:function(e,t,n,r,a){var i,o,s,c,l,u,d,f,p,m,b,M=W.get(e);if(M)for(n.handler&&(n=(i=n).handler,a=i.selector),n.guid||(n.guid=h.guid++),(c=M.events)||(c=M.events={}),(o=M.handle)||(o=M.handle=function(t){return void 0!==h&&h.event.triggered!==t.type?h.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(C)||[""]).length;l--;)p=b=(s=se.exec(t[l])||[])[1],m=(s[2]||"").split(".").sort(),p&&(d=h.event.special[p]||{},p=(a?d.delegateType:d.bindType)||p,d=h.event.special[p]||{},u=h.extend({type:p,origType:b,data:r,handler:n,guid:n.guid,selector:a,needsContext:a&&h.expr.match.needsContext.test(a),namespace:m.join(".")},i),(f=c[p])||((f=c[p]=[]).delegateCount=0,d.setup&&!1!==d.setup.call(e,r,m,o)||e.addEventListener&&e.addEventListener(p,o)),d.add&&(d.add.call(e,u),u.handler.guid||(u.handler.guid=n.guid)),a?f.splice(f.delegateCount++,0,u):f.push(u),h.event.global[p]=!0)},remove:function(e,t,n,r,a){var i,o,s,c,l,u,d,f,p,m,b,M=W.hasData(e)&&W.get(e);if(M&&(c=M.events)){for(l=(t=(t||"").match(C)||[""]).length;l--;)if(p=b=(s=se.exec(t[l])||[])[1],m=(s[2]||"").split(".").sort(),p){for(d=h.event.special[p]||{},f=c[p=(r?d.delegateType:d.bindType)||p]||[],s=s[2]&&new RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"),o=i=f.length;i--;)u=f[i],!a&&b!==u.origType||n&&n.guid!==u.guid||s&&!s.test(u.namespace)||r&&r!==u.selector&&("**"!==r||!u.selector)||(f.splice(i,1),u.selector&&f.delegateCount--,d.remove&&d.remove.call(e,u));o&&!f.length&&(d.teardown&&!1!==d.teardown.call(e,m,M.handle)||h.removeEvent(e,p,M.handle),delete c[p])}else for(p in c)h.event.remove(e,p+t[l],n,r,!0);h.isEmptyObject(c)&&W.remove(e,"handle events")}},dispatch:function(e){e=h.event.fix(e);var t,n,r,a,i,o=[],c=s.call(arguments),l=(W.get(this,"events")||{})[e.type]||[],u=h.event.special[e.type]||{};if(c[0]=e,e.delegateTarget=this,!u.preDispatch||!1!==u.preDispatch.call(this,e)){for(o=h.event.handlers.call(this,e,l),t=0;(a=o[t++])&&!e.isPropagationStopped();)for(e.currentTarget=a.elem,n=0;(i=a.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(i.namespace)||(e.handleObj=i,e.data=i.data,void 0!==(r=((h.event.special[i.origType]||{}).handle||i.handler).apply(a.elem,c))&&!1===(e.result=r)&&(e.preventDefault(),e.stopPropagation()));return u.postDispatch&&u.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,a,i,o=[],s=t.delegateCount,c=e.target;if(s&&c.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&(!0!==c.disabled||"click"!==e.type)){for(r=[],n=0;n-1:h.find(a,this,null,[c]).length),r[a]&&r.push(i);r.length&&o.push({elem:c,handlers:r})}return s]*)\/>/gi,pe=/\s*$/g;function Me(e,t){return h.nodeName(e,"table")&&h.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function _e(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function ge(e){var t=he.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function ye(e,t){var n,r,a,i,o,s,c,l;if(1===t.nodeType){if(W.hasData(e)&&(i=W.access(e),o=W.set(t,i),l=i.events))for(a in delete o.handle,o.events={},l)for(n=0,r=l[a].length;n1&&"string"==typeof b&&!m.checkClone&&me.test(b))return e.each((function(a){var i=e.eq(a);M&&(t[0]=b.call(this,a,i.html())),ve(i,t,n,r)}));if(f&&(i=(a=ae(t,e[0].ownerDocument,!1,e,r)).firstChild,1===a.childNodes.length&&(a=i),i||r)){for(s=(o=h.map(Z(a,"script"),_e)).length;d")},clone:function(e,t,n){var r,a,i,o,s,c,l,u=e.cloneNode(!0),d=h.contains(e.ownerDocument,e);if(!(m.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||h.isXMLDoc(e)))for(o=Z(u),r=0,a=(i=Z(e)).length;r0&&ee(o,!d&&Z(e,"script")),u},cleanData:function(e){for(var t,n,r,a=h.event.special,i=0;void 0!==(n=e[i]);i++)if(j(n)){if(t=n[W.expando]){if(t.events)for(r in t.events)a[r]?h.event.remove(n,r):h.removeEvent(n,r,t.handle);n[W.expando]=void 0}n[q.expando]&&(n[q.expando]=void 0)}}}),h.fn.extend({domManip:ve,detach:function(e){return Le(this,e,!0)},remove:function(e){return Le(this,e)},text:function(e){return P(this,(function(e){return void 0===e?h.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return ve(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Me(this,e).appendChild(e)}))},prepend:function(){return ve(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Me(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return ve(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return ve(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(h.cleanData(Z(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return h.clone(this,e,t)}))},html:function(e){return P(this,(function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!pe.test(e)&&!Q[(J.exec(e)||["",""])[1].toLowerCase()]){e=h.htmlPrefilter(e);try{for(;n")).appendTo(t.documentElement))[0].contentDocument).write(),t.close(),n=Te(e,t),we.detach()),Ae[e]=n),n}var ke=/^margin/,Se=new RegExp("^("+X+")(?!px)[a-z%]+$","i"),ze=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=n),t.getComputedStyle(e)},Ee=function(e,t,n,r){var a,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in a=n.apply(e,r||[]),t)e.style[i]=o[i];return a},Ne=o.documentElement;function xe(e,t,n){var r,a,i,o,s=e.style;return""!==(o=(n=n||ze(e))?n.getPropertyValue(t)||n[t]:void 0)&&void 0!==o||h.contains(e.ownerDocument,e)||(o=h.style(e,t)),n&&!m.pixelMarginRight()&&Se.test(o)&&ke.test(t)&&(r=s.width,a=s.minWidth,i=s.maxWidth,s.minWidth=s.maxWidth=s.width=o,o=n.width,s.width=r,s.minWidth=a,s.maxWidth=i),void 0!==o?o+"":o}function De(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){var e,t,r,a,i=o.createElement("div"),s=o.createElement("div");function c(){s.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",s.innerHTML="",Ne.appendChild(i);var o=n.getComputedStyle(s);e="1%"!==o.top,a="2px"===o.marginLeft,t="4px"===o.width,s.style.marginRight="50%",r="4px"===o.marginRight,Ne.removeChild(i)}s.style&&(s.style.backgroundClip="content-box",s.cloneNode(!0).style.backgroundClip="",m.clearCloneStyle="content-box"===s.style.backgroundClip,i.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",i.appendChild(s),h.extend(m,{pixelPosition:function(){return c(),e},boxSizingReliable:function(){return null==t&&c(),t},pixelMarginRight:function(){return null==t&&c(),r},reliableMarginLeft:function(){return null==t&&c(),a},reliableMarginRight:function(){var e,t=s.appendChild(o.createElement("div"));return t.style.cssText=s.style.cssText="-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",t.style.marginRight=t.style.width="0",s.style.width="1px",Ne.appendChild(i),e=!parseFloat(n.getComputedStyle(t).marginRight),Ne.removeChild(i),s.removeChild(t),e}}))}();var Ce=/^(none|table(?!-c[ea]).+)/,Ye={position:"absolute",visibility:"hidden",display:"block"},Pe={letterSpacing:"0",fontWeight:"400"},je=["Webkit","O","Moz","ms"],Re=o.createElement("div").style;function We(e){if(e in Re)return e;for(var t=e[0].toUpperCase()+e.slice(1),n=je.length;n--;)if((e=je[n]+t)in Re)return e}function qe(e,t,n){var r=F.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Be(e,t,n,r,a){for(var i=n===(r?"border":"content")?4:"width"===t?1:0,o=0;i<4;i+=2)"margin"===n&&(o+=h.css(e,n+U[i],!0,a)),r?("content"===n&&(o-=h.css(e,"padding"+U[i],!0,a)),"margin"!==n&&(o-=h.css(e,"border"+U[i]+"Width",!0,a))):(o+=h.css(e,"padding"+U[i],!0,a),"padding"!==n&&(o+=h.css(e,"border"+U[i]+"Width",!0,a)));return o}function He(e,t,n){var r=!0,a="width"===t?e.offsetWidth:e.offsetHeight,i=ze(e),o="border-box"===h.css(e,"boxSizing",!1,i);if(a<=0||null==a){if(((a=xe(e,t,i))<0||null==a)&&(a=e.style[t]),Se.test(a))return a;r=o&&(m.boxSizingReliable()||a===e.style[t]),a=parseFloat(a)||0}return a+Be(e,t,n||(o?"border":"content"),r,i)+"px"}function Ie(e,t){for(var n,r,a,i=[],o=0,s=e.length;o1)},show:function(){return Ie(this,!0)},hide:function(){return Ie(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each((function(){V(this)?h(this).show():h(this).hide()}))}}),h.Tween=Xe,Xe.prototype={constructor:Xe,init:function(e,t,n,r,a,i){this.elem=e,this.prop=n,this.easing=a||h.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=i||(h.cssNumber[n]?"":"px")},cur:function(){var e=Xe.propHooks[this.prop];return e&&e.get?e.get(this):Xe.propHooks._default.get(this)},run:function(e){var t,n=Xe.propHooks[this.prop];return this.options.duration?this.pos=t=h.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Xe.propHooks._default.set(this),this}},Xe.prototype.init.prototype=Xe.prototype,Xe.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=h.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){h.fx.step[e.prop]?h.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[h.cssProps[e.prop]]&&!h.cssHooks[e.prop]?e.elem[e.prop]=e.now:h.style(e.elem,e.prop,e.now+e.unit)}}},Xe.propHooks.scrollTop=Xe.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},h.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},h.fx=Xe.prototype.init,h.fx.step={};var Fe,Ue,Ve=/^(?:toggle|show|hide)$/,Ge=/queueHooks$/;function $e(){return n.setTimeout((function(){Fe=void 0})),Fe=h.now()}function Je(e,t){var n,r=0,a={height:e};for(t=t?1:0;r<4;r+=2-t)a["margin"+(n=U[r])]=a["padding"+n]=e;return t&&(a.opacity=a.width=e),a}function Ke(e,t,n){for(var r,a=(Qe.tweeners[t]||[]).concat(Qe.tweeners["*"]),i=0,o=a.length;i1)},removeAttr:function(e){return this.each((function(){h.removeAttr(this,e)}))}}),h.extend({attr:function(e,t,n){var r,a,i=e.nodeType;if(3!==i&&8!==i&&2!==i)return void 0===e.getAttribute?h.prop(e,t,n):(1===i&&h.isXMLDoc(e)||(t=t.toLowerCase(),a=h.attrHooks[t]||(h.expr.match.bool.test(t)?Ze:void 0)),void 0!==n?null===n?void h.removeAttr(e,t):a&&"set"in a&&void 0!==(r=a.set(e,n,t))?r:(e.setAttribute(t,n+""),n):a&&"get"in a&&null!==(r=a.get(e,t))?r:null==(r=h.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!m.radioValue&&"radio"===t&&h.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r,a=0,i=t&&t.match(C);if(i&&1===e.nodeType)for(;n=i[a++];)r=h.propFix[n]||n,h.expr.match.bool.test(n)&&(e[r]=!1),e.removeAttribute(n)}}),Ze={set:function(e,t,n){return!1===t?h.removeAttr(e,n):e.setAttribute(n,n),n}},h.each(h.expr.match.bool.source.match(/\w+/g),(function(e,t){var n=et[t]||h.find.attr;et[t]=function(e,t,r){var a,i;return r||(i=et[t],et[t]=a,a=null!=n(e,t,r)?t.toLowerCase():null,et[t]=i),a}}));var tt=/^(?:input|select|textarea|button)$/i,nt=/^(?:a|area)$/i;h.fn.extend({prop:function(e,t){return P(this,h.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[h.propFix[e]||e]}))}}),h.extend({prop:function(e,t,n){var r,a,i=e.nodeType;if(3!==i&&8!==i&&2!==i)return 1===i&&h.isXMLDoc(e)||(t=h.propFix[t]||t,a=h.propHooks[t]),void 0!==n?a&&"set"in a&&void 0!==(r=a.set(e,n,t))?r:e[t]=n:a&&"get"in a&&null!==(r=a.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=h.find.attr(e,"tabindex");return t?parseInt(t,10):tt.test(e.nodeName)||nt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),m.optSelected||(h.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),h.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){h.propFix[this.toLowerCase()]=this}));var rt=/[\t\r\n\f]/g;function at(e){return e.getAttribute&&e.getAttribute("class")||""}h.fn.extend({addClass:function(e){var t,n,r,a,i,o,s,c=0;if(h.isFunction(e))return this.each((function(t){h(this).addClass(e.call(this,t,at(this)))}));if("string"==typeof e&&e)for(t=e.match(C)||[];n=this[c++];)if(a=at(n),r=1===n.nodeType&&(" "+a+" ").replace(rt," ")){for(o=0;i=t[o++];)r.indexOf(" "+i+" ")<0&&(r+=i+" ");a!==(s=h.trim(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,a,i,o,s,c=0;if(h.isFunction(e))return this.each((function(t){h(this).removeClass(e.call(this,t,at(this)))}));if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(C)||[];n=this[c++];)if(a=at(n),r=1===n.nodeType&&(" "+a+" ").replace(rt," ")){for(o=0;i=t[o++];)for(;r.indexOf(" "+i+" ")>-1;)r=r.replace(" "+i+" "," ");a!==(s=h.trim(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):h.isFunction(e)?this.each((function(n){h(this).toggleClass(e.call(this,n,at(this),t),t)})):this.each((function(){var t,r,a,i;if("string"===n)for(r=0,a=h(this),i=e.match(C)||[];t=i[r++];)a.hasClass(t)?a.removeClass(t):a.addClass(t);else void 0!==e&&"boolean"!==n||((t=at(this))&&W.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":W.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+at(n)+" ").replace(rt," ").indexOf(t)>-1)return!0;return!1}});var it=/\r/g,ot=/[\x20\t\r\n\f]+/g;h.fn.extend({val:function(e){var t,n,r,a=this[0];return arguments.length?(r=h.isFunction(e),this.each((function(n){var a;1===this.nodeType&&(null==(a=r?e.call(this,n,h(this).val()):e)?a="":"number"==typeof a?a+="":h.isArray(a)&&(a=h.map(a,(function(e){return null==e?"":e+""}))),(t=h.valHooks[this.type]||h.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,a,"value")||(this.value=a))}))):a?(t=h.valHooks[a.type]||h.valHooks[a.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(a,"value"))?n:"string"==typeof(n=a.value)?n.replace(it,""):null==n?"":n:void 0}}),h.extend({valHooks:{option:{get:function(e){var t=h.find.attr(e,"value");return null!=t?t:h.trim(h.text(e)).replace(ot," ")}},select:{get:function(e){for(var t,n,r=e.options,a=e.selectedIndex,i="select-one"===e.type||a<0,o=i?null:[],s=i?a+1:r.length,c=a<0?s:i?a:0;c-1)&&(n=!0);return n||(e.selectedIndex=-1),i}}}}),h.each(["radio","checkbox"],(function(){h.valHooks[this]={set:function(e,t){if(h.isArray(t))return e.checked=h.inArray(h(e).val(),t)>-1}},m.checkOn||(h.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}));var st=/^(?:focusinfocus|focusoutblur)$/;h.extend(h.event,{trigger:function(e,t,r,a){var i,s,c,l,u,d,f,m=[r||o],b=p.call(e,"type")?e.type:e,M=p.call(e,"namespace")?e.namespace.split("."):[];if(s=c=r=r||o,3!==r.nodeType&&8!==r.nodeType&&!st.test(b+h.event.triggered)&&(b.indexOf(".")>-1&&(M=b.split("."),b=M.shift(),M.sort()),u=b.indexOf(":")<0&&"on"+b,(e=e[h.expando]?e:new h.Event(b,"object"==typeof e&&e)).isTrigger=a?2:3,e.namespace=M.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+M.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=r),t=null==t?[e]:h.makeArray(t,[e]),f=h.event.special[b]||{},a||!f.trigger||!1!==f.trigger.apply(r,t))){if(!a&&!f.noBubble&&!h.isWindow(r)){for(l=f.delegateType||b,st.test(l+b)||(s=s.parentNode);s;s=s.parentNode)m.push(s),c=s;c===(r.ownerDocument||o)&&m.push(c.defaultView||c.parentWindow||n)}for(i=0;(s=m[i++])&&!e.isPropagationStopped();)e.type=i>1?l:f.bindType||b,(d=(W.get(s,"events")||{})[e.type]&&W.get(s,"handle"))&&d.apply(s,t),(d=u&&s[u])&&d.apply&&j(s)&&(e.result=d.apply(s,t),!1===e.result&&e.preventDefault());return e.type=b,a||e.isDefaultPrevented()||f._default&&!1!==f._default.apply(m.pop(),t)||!j(r)||u&&h.isFunction(r[b])&&!h.isWindow(r)&&((c=r[u])&&(r[u]=null),h.event.triggered=b,r[b](),h.event.triggered=void 0,c&&(r[u]=c)),e.result}},simulate:function(e,t,n){var r=h.extend(new h.Event,n,{type:e,isSimulated:!0});h.event.trigger(r,null,t)}}),h.fn.extend({trigger:function(e,t){return this.each((function(){h.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return h.event.trigger(e,t,n,!0)}}),h.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),(function(e,t){h.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}})),h.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),m.focusin="onfocusin"in n,m.focusin||h.each({focus:"focusin",blur:"focusout"},(function(e,t){var n=function(e){h.event.simulate(t,e.target,h.event.fix(e))};h.event.special[t]={setup:function(){var r=this.ownerDocument||this,a=W.access(r,t);a||r.addEventListener(e,n,!0),W.access(r,t,(a||0)+1)},teardown:function(){var r=this.ownerDocument||this,a=W.access(r,t)-1;a?W.access(r,t,a):(r.removeEventListener(e,n,!0),W.remove(r,t))}}}));var ct=n.location,lt=h.now(),ut=/\?/;h.parseJSON=function(e){return JSON.parse(e+"")},h.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new n.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||h.error("Invalid XML: "+e),t};var dt=/#.*$/,ft=/([?&])_=[^&]*/,pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,mt=/^(?:GET|HEAD)$/,ht=/^\/\//,bt={},Mt={},_t="*/".concat("*"),gt=o.createElement("a");function yt(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,a=0,i=t.toLowerCase().match(C)||[];if(h.isFunction(n))for(;r=i[a++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function vt(e,t,n,r){var a={},i=e===Mt;function o(s){var c;return a[s]=!0,h.each(e[s]||[],(function(e,s){var l=s(t,n,r);return"string"!=typeof l||i||a[l]?i?!(c=l):void 0:(t.dataTypes.unshift(l),o(l),!1)})),c}return o(t.dataTypes[0])||!a["*"]&&o("*")}function Lt(e,t){var n,r,a=h.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((a[n]?e:r||(r={}))[n]=t[n]);return r&&h.extend(!0,e,r),e}gt.href=ct.href,h.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ct.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":_t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":h.parseJSON,"text xml":h.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Lt(Lt(e,h.ajaxSettings),t):Lt(h.ajaxSettings,e)},ajaxPrefilter:yt(bt),ajaxTransport:yt(Mt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var r,a,i,s,c,l,u,d,f=h.ajaxSetup({},t),p=f.context||f,m=f.context&&(p.nodeType||p.jquery)?h(p):h.event,b=h.Deferred(),M=h.Callbacks("once memory"),_=f.statusCode||{},g={},y={},v=0,L="canceled",w={readyState:0,getResponseHeader:function(e){var t;if(2===v){if(!s)for(s={};t=pt.exec(i);)s[t[1].toLowerCase()]=t[2];t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===v?i:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return v||(e=y[n]=y[n]||e,g[e]=t),this},overrideMimeType:function(e){return v||(f.mimeType=e),this},statusCode:function(e){var t;if(e)if(v<2)for(t in e)_[t]=[_[t],e[t]];else w.always(e[w.status]);return this},abort:function(e){var t=e||L;return r&&r.abort(t),A(0,t),this}};if(b.promise(w).complete=M.add,w.success=w.done,w.error=w.fail,f.url=((e||f.url||ct.href)+"").replace(dt,"").replace(ht,ct.protocol+"//"),f.type=t.method||t.type||f.method||f.type,f.dataTypes=h.trim(f.dataType||"*").toLowerCase().match(C)||[""],null==f.crossDomain){l=o.createElement("a");try{l.href=f.url,l.href=l.href,f.crossDomain=gt.protocol+"//"+gt.host!=l.protocol+"//"+l.host}catch(e){f.crossDomain=!0}}if(f.data&&f.processData&&"string"!=typeof f.data&&(f.data=h.param(f.data,f.traditional)),vt(bt,f,t,w),2===v)return w;for(d in(u=h.event&&f.global)&&0==h.active++&&h.event.trigger("ajaxStart"),f.type=f.type.toUpperCase(),f.hasContent=!mt.test(f.type),a=f.url,f.hasContent||(f.data&&(a=f.url+=(ut.test(a)?"&":"?")+f.data,delete f.data),!1===f.cache&&(f.url=ft.test(a)?a.replace(ft,"$1_="+lt++):a+(ut.test(a)?"&":"?")+"_="+lt++)),f.ifModified&&(h.lastModified[a]&&w.setRequestHeader("If-Modified-Since",h.lastModified[a]),h.etag[a]&&w.setRequestHeader("If-None-Match",h.etag[a])),(f.data&&f.hasContent&&!1!==f.contentType||t.contentType)&&w.setRequestHeader("Content-Type",f.contentType),w.setRequestHeader("Accept",f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+("*"!==f.dataTypes[0]?", "+_t+"; q=0.01":""):f.accepts["*"]),f.headers)w.setRequestHeader(d,f.headers[d]);if(f.beforeSend&&(!1===f.beforeSend.call(p,w,f)||2===v))return w.abort();for(d in L="abort",{success:1,error:1,complete:1})w[d](f[d]);if(r=vt(Mt,f,t,w)){if(w.readyState=1,u&&m.trigger("ajaxSend",[w,f]),2===v)return w;f.async&&f.timeout>0&&(c=n.setTimeout((function(){w.abort("timeout")}),f.timeout));try{v=1,r.send(g,A)}catch(e){if(!(v<2))throw e;A(-1,e)}}else A(-1,"No Transport");function A(e,t,o,s){var l,d,g,y,L,A=t;2!==v&&(v=2,c&&n.clearTimeout(c),r=void 0,i=s||"",w.readyState=e>0?4:0,l=e>=200&&e<300||304===e,o&&(y=function(e,t,n){for(var r,a,i,o,s=e.contents,c=e.dataTypes;"*"===c[0];)c.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(a in s)if(s[a]&&s[a].test(r)){c.unshift(a);break}if(c[0]in n)i=c[0];else{for(a in n){if(!c[0]||e.converters[a+" "+c[0]]){i=a;break}o||(o=a)}i=i||o}if(i)return i!==c[0]&&c.unshift(i),n[i]}(f,w,o)),y=function(e,t,n,r){var a,i,o,s,c,l={},u=e.dataTypes.slice();if(u[1])for(o in e.converters)l[o.toLowerCase()]=e.converters[o];for(i=u.shift();i;)if(e.responseFields[i]&&(n[e.responseFields[i]]=t),!c&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),c=i,i=u.shift())if("*"===i)i=c;else if("*"!==c&&c!==i){if(!(o=l[c+" "+i]||l["* "+i]))for(a in l)if((s=a.split(" "))[1]===i&&(o=l[c+" "+s[0]]||l["* "+s[0]])){!0===o?o=l[a]:!0!==l[a]&&(i=s[0],u.unshift(s[1]));break}if(!0!==o)if(o&&e.throws)t=o(t);else try{t=o(t)}catch(e){return{state:"parsererror",error:o?e:"No conversion from "+c+" to "+i}}}return{state:"success",data:t}}(f,y,w,l),l?(f.ifModified&&((L=w.getResponseHeader("Last-Modified"))&&(h.lastModified[a]=L),(L=w.getResponseHeader("etag"))&&(h.etag[a]=L)),204===e||"HEAD"===f.type?A="nocontent":304===e?A="notmodified":(A=y.state,d=y.data,l=!(g=y.error))):(g=A,!e&&A||(A="error",e<0&&(e=0))),w.status=e,w.statusText=(t||A)+"",l?b.resolveWith(p,[d,A,w]):b.rejectWith(p,[w,A,g]),w.statusCode(_),_=void 0,u&&m.trigger(l?"ajaxSuccess":"ajaxError",[w,f,l?d:g]),M.fireWith(p,[w,A]),u&&(m.trigger("ajaxComplete",[w,f]),--h.active||h.event.trigger("ajaxStop")))}return w},getJSON:function(e,t,n){return h.get(e,t,n,"json")},getScript:function(e,t){return h.get(e,void 0,t,"script")}}),h.each(["get","post"],(function(e,t){h[t]=function(e,n,r,a){return h.isFunction(n)&&(a=a||r,r=n,n=void 0),h.ajax(h.extend({url:e,type:t,dataType:a,data:n,success:r},h.isPlainObject(e)&&e))}})),h._evalUrl=function(e){return h.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,throws:!0})},h.fn.extend({wrapAll:function(e){var t;return h.isFunction(e)?this.each((function(t){h(this).wrapAll(e.call(this,t))})):(this[0]&&(t=h(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this)},wrapInner:function(e){return h.isFunction(e)?this.each((function(t){h(this).wrapInner(e.call(this,t))})):this.each((function(){var t=h(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=h.isFunction(e);return this.each((function(n){h(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(){return this.parent().each((function(){h.nodeName(this,"body")||h(this).replaceWith(this.childNodes)})).end()}}),h.expr.filters.hidden=function(e){return!h.expr.filters.visible(e)},h.expr.filters.visible=function(e){return e.offsetWidth>0||e.offsetHeight>0||e.getClientRects().length>0};var wt=/%20/g,At=/\[\]$/,Tt=/\r?\n/g,Ot=/^(?:submit|button|image|reset|file)$/i,kt=/^(?:input|select|textarea|keygen)/i;function St(e,t,n,r){var a;if(h.isArray(t))h.each(t,(function(t,a){n||At.test(e)?r(e,a):St(e+"["+("object"==typeof a&&null!=a?t:"")+"]",a,n,r)}));else if(n||"object"!==h.type(t))r(e,t);else for(a in t)St(e+"["+a+"]",t[a],n,r)}h.param=function(e,t){var n,r=[],a=function(e,t){t=h.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=h.ajaxSettings&&h.ajaxSettings.traditional),h.isArray(e)||e.jquery&&!h.isPlainObject(e))h.each(e,(function(){a(this.name,this.value)}));else for(n in e)St(n,e[n],t,a);return r.join("&").replace(wt,"+")},h.fn.extend({serialize:function(){return h.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=h.prop(this,"elements");return e?h.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!h(this).is(":disabled")&&kt.test(this.nodeName)&&!Ot.test(e)&&(this.checked||!$.test(e))})).map((function(e,t){var n=h(this).val();return null==n?null:h.isArray(n)?h.map(n,(function(e){return{name:t.name,value:e.replace(Tt,"\r\n")}})):{name:t.name,value:n.replace(Tt,"\r\n")}})).get()}}),h.ajaxSettings.xhr=function(){try{return new n.XMLHttpRequest}catch(e){}};var zt={0:200,1223:204},Et=h.ajaxSettings.xhr();m.cors=!!Et&&"withCredentials"in Et,m.ajax=Et=!!Et,h.ajaxTransport((function(e){var t,r;if(m.cors||Et&&!e.crossDomain)return{send:function(a,i){var o,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(o in e.xhrFields)s[o]=e.xhrFields[o];for(o in e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||a["X-Requested-With"]||(a["X-Requested-With"]="XMLHttpRequest"),a)s.setRequestHeader(o,a[o]);t=function(e){return function(){t&&(t=r=s.onload=s.onerror=s.onabort=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?i(0,"error"):i(s.status,s.statusText):i(zt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=t(),r=s.onerror=t("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&n.setTimeout((function(){t&&r()}))},t=t("abort");try{s.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}})),h.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return h.globalEval(e),e}}}),h.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),h.ajaxTransport("script",(function(e){var t,n;if(e.crossDomain)return{send:function(r,a){t=h("