diff --git a/question/format/xml/format.php b/question/format/xml/format.php index 64f0dbf1f48..6e267e4b486 100644 --- a/question/format/xml/format.php +++ b/question/format/xml/format.php @@ -149,6 +149,40 @@ class qformat_xml extends qformat_default { return $xml; } + public function import_text_with_files($data, $path, $defaultvalue = '', $defaultformat = 'html') { + $field = array(); + $field['text'] = $this->getpath($data, + array_merge($path, array('#', 'text', 0, '#')), $defaultvalue, true); + $field['format'] = $this->trans_format($this->getpath($data, + array_merge($path, array('@', 'format')), $defaultformat)); + $itemid = $this->import_files_as_draft($this->getpath($data, + array_merge($path, array('#', 'file')), array(), false)); + if (!empty($itemid)) { + $field['itemid'] = $itemid; + } + return $field; + } + + public function import_files_as_draft($xml) { + global $USER; + if (empty($xml)) { + return null; + } + $fs = get_file_storage(); + $itemid = file_get_unused_draft_itemid(); + foreach ($xml as $file) { + $filerecord = array( + 'contextid' => context_user::instance($USER->id)->id, + 'component' => 'user', + 'filearea' => 'draft', + 'itemid' => $itemid, + 'filepath' => '/', + 'filename' => $file['@']['name'], + ); + $fs->create_file_from_string($filerecord, base64_decode($file['#'])); + } + return $itemid; + } /** * import parts of question common to all types @@ -156,7 +190,7 @@ class qformat_xml extends qformat_default { * @return object question object */ public function import_headers($question) { - global $CFG; + global $CFG, $USER; // get some error strings $error_noname = get_string('xmlimportnoname', 'qformat_xml'); @@ -169,35 +203,42 @@ class qformat_xml extends qformat_default { $qo->name = $this->clean_question_name($this->getpath($question, array('#', 'name', 0, '#', 'text', 0, '#'), '', true, get_string('xmlimportnoname', 'qformat_xml'))); - $qo->questiontext = $this->getpath($question, - array('#', 'questiontext', 0, '#', 'text', 0, '#'), '', true); - $qo->questiontextformat = $this->trans_format($this->getpath( - $question, array('#', 'questiontext', 0, '@', 'format'), 'html')); - - $qo->questiontextfiles = $this->import_files($this->getpath($question, - array('#', 'questiontext', 0, '#', 'file'), array(), false)); - + $questiontext = $this->import_text_with_files($question, + array('#', 'questiontext', 0)); + $qo->questiontext = $questiontext['text']; + $qo->questiontextformat = $questiontext['format']; + if (!empty($questiontext['itemid'])) { + $qo->questiontextitemid = $questiontext['itemid']; + } // Backwards compatibility, deal with the old image tag. $filedata = $this->getpath($question, array('#', 'image_base64', '0', '#'), null, false); $filename = $this->getpath($question, array('#', 'image', '0', '#'), null, false); if ($filedata && $filename) { - $data = new stdClass(); - $data->content = $filedata; - $data->encoding = 'base64'; - // Question file areas don't support subdirs, so convert path to filename if necessary. - $data->name = clean_param(str_replace('/', '_', $filename), PARAM_FILE); - $qo->questiontextfiles[] = $data; - $qo->questiontext .= ' '; + $fs = get_file_storage(); + if (empty($qo->questiontextitemid)) { + $qo->questiontextitemid = file_get_unused_draft_itemid(); + } + $filename = clean_param(str_replace('/', '_', $filename), PARAM_FILE); + $filerecord = array( + 'contextid' => context_user::instance($USER->id)->id, + 'component' => 'user', + 'filearea' => 'draft', + 'itemid' => $qo->questiontextitemid, + 'filepath' => '/', + 'filename' => $filename, + ); + $fs->create_file_from_string($filerecord, base64_decode($filedata)); + $qo->questiontext .= ' '; } // restore files in generalfeedback - $qo->generalfeedback = $this->getpath($question, - array('#', 'generalfeedback', 0, '#', 'text', 0, '#'), $qo->generalfeedback, true); - $qo->generalfeedbackfiles = array(); - $qo->generalfeedbackformat = $this->trans_format($this->getpath($question, - array('#', 'generalfeedback', 0, '@', 'format'), $this->get_format($qo->questiontextformat))); - $qo->generalfeedbackfiles = $this->import_files($this->getpath($question, - array('#', 'generalfeedback', 0, '#', 'file'), array(), false)); + $generalfeedback = $this->import_text_with_files($question, + array('#', 'generalfeedback', 0), $qo->generalfeedback, $this->get_format($qo->questiontextformat)); + $qo->generalfeedback = $generalfeedback['text']; + $qo->generalfeedbackformat = $generalfeedback['format']; + if (!empty($generalfeedback['itemid'])) { + $qo->generalfeedbackitemid = $generalfeedback['itemid']; + } $qo->defaultmark = $this->getpath($question, array('#', 'defaultgrade', 0, '#'), $qo->defaultmark); @@ -234,24 +275,15 @@ class qformat_xml extends qformat_default { public function import_answer($answer, $withanswerfiles = false, $defaultformat = 'html') { $ans = new stdClass(); - $ans->answer = array(); - $ans->answer['text'] = $this->getpath($answer, array('#', 'text', 0, '#'), '', true); - $ans->answer['format'] = $this->trans_format($this->getpath($answer, - array('@', 'format'), $defaultformat)); if ($withanswerfiles) { - $ans->answer['files'] = $this->import_files($this->getpath($answer, - array('#', 'file'), array())); + $ans->answer = $this->import_text_with_files($answer, array(), '', $defaultformat); } else { + $ans->answer = array(); + $ans->answer['text'] = $this->getpath($answer, array('#', 'text', 0, '#'), '', true); $ans->answer['format'] = FORMAT_PLAIN; } - $ans->feedback = array(); - $ans->feedback['text'] = $this->getpath($answer, - array('#', 'feedback', 0, '#', 'text', 0, '#'), '', true); - $ans->feedback['format'] = $this->trans_format($this->getpath($answer, - array('#', 'feedback', 0, '@', 'format'), $defaultformat)); - $ans->feedback['files'] = $this->import_files($this->getpath($answer, - array('#', 'feedback', 0, '#', 'file'), array())); + $ans->feedback = $this->import_text_with_files($answer, array('#', 'feedback', 0), '', $defaultformat); $ans->fraction = $this->getpath($answer, array('@', 'fraction'), 0) / 100; @@ -267,15 +299,8 @@ class qformat_xml extends qformat_default { public function import_combined_feedback($qo, $questionxml, $withshownumpartscorrect = false) { $fields = array('correctfeedback', 'partiallycorrectfeedback', 'incorrectfeedback'); foreach ($fields as $field) { - $text = array(); - $text['text'] = $this->getpath($questionxml, - array('#', $field, 0, '#', 'text', 0, '#'), '', true); - $text['format'] = $this->trans_format($this->getpath($questionxml, - array('#', $field, 0, '@', 'format'), $this->get_format($qo->questiontextformat))); - $text['files'] = $this->import_files($this->getpath($questionxml, - array('#', $field, 0, '#', 'file'), array(), false)); - - $qo->$field = $text; + $qo->$field = $this->import_text_with_files($questionxml, + array('#', $field, 0), '', $this->get_format($qo->questiontextformat)); } if ($withshownumpartscorrect) { @@ -296,15 +321,13 @@ class qformat_xml extends qformat_default { * @return object hint for storing in the database. */ public function import_hint($hintxml, $defaultformat) { + $hint = new stdClass(); if (array_key_exists('hintcontent', $hintxml['#'])) { // Backwards compatibility: - $hint = new stdClass(); - $hint->hint = array('format' => FORMAT_HTML, 'files' => array()); - $hint->hint['text'] = $this->getpath($hintxml, - array('#', 'hintcontent', 0, '#', 'text', 0, '#'), '', true); - $hint->hint['format'] = $this->trans_format($defaultformat); - $hint->hint['files'] = array(); + $hint->hint = $this->import_text_with_files($hintxml, + array('#', 'hintcontent', 0), '', $defaultformat); + $hint->shownumcorrect = $this->getpath($hintxml, array('#', 'statenumberofcorrectresponses', 0, '#'), 0); $hint->clearwrong = $this->getpath($hintxml, @@ -314,14 +337,7 @@ class qformat_xml extends qformat_default { return $hint; } - - $hint = new stdClass(); - $hint->hint['text'] = $this->getpath($hintxml, - array('#', 'text', 0, '#'), '', true); - $hint->hint['format'] = $this->trans_format($this->getpath($hintxml, - array('@', 'format'), $defaultformat)); - $hint->hint['files'] = $this->import_files($this->getpath($hintxml, - array('#', 'file'), array(), false)); + $hint->hint = $this->import_text_with_files($hintxml, array(), '', $defaultformat); $hint->shownumcorrect = array_key_exists('shownumcorrect', $hintxml['#']); $hint->clearwrong = array_key_exists('clearwrong', $hintxml['#']); $hint->options = $this->getpath($hintxml, array('#', 'options', 0, '#'), '', true); @@ -440,9 +456,11 @@ class qformat_xml extends qformat_default { $qo->name = $this->clean_question_name($this->import_text($question['#']['name'][0]['#']['text'])); $qo->questiontextformat = $questiontext['format']; $qo->questiontext = $qo->questiontext['text']; - $qo->questiontextfiles = $this->import_files($this->getpath($question, + $itemid = $this->import_files($this->getpath($question, array('#', 'questiontext', 0, '#', 'file'), array(), false)); - + if (!empty($itemid)) { + $qo->questiontextitemid = $itemid; + } // Backwards compatibility, deal with the old image tag. $filedata = $this->getpath($question, array('#', 'image_base64', '0', '#'), null, false); $filename = $this->getpath($question, array('#', 'image', '0', '#'), null, false); @@ -457,12 +475,13 @@ class qformat_xml extends qformat_default { } // restore files in generalfeedback - $qo->generalfeedback = $this->getpath($question, - array('#', 'generalfeedback', 0, '#', 'text', 0, '#'), $qo->generalfeedback, true); - $qo->generalfeedbackformat = $this->trans_format($this->getpath($question, - array('#', 'generalfeedback', 0, '@', 'format'), $this->get_format($qo->questiontextformat))); - $qo->generalfeedbackfiles = $this->import_files($this->getpath($question, - array('#', 'generalfeedback', 0, '#', 'file'), array(), false)); + $generalfeedback = $this->import_text_with_files($question, + array('#', 'generalfeedback', 0), $qo->generalfeedback, $this->get_format($qo->questiontextformat)); + $qo->generalfeedback = $generalfeedback['text']; + $qo->generalfeedbackformat = $generalfeedback['format']; + if (!empty($generalfeedback['itemid'])) { + $qo->generalfeedbackitemid = $generalfeedback['itemid']; + } $qo->penalty = $this->getpath($question, array('#', 'penalty', 0, '#'), $this->defaultquestion()->penalty); @@ -498,20 +517,9 @@ class qformat_xml extends qformat_default { foreach ($question['#']['answer'] as $answer) { $answertext = $this->getpath($answer, array('#', 'text', 0, '#'), '', true); - $feedback = $this->getpath($answer, - array('#', 'feedback', 0, '#', 'text', 0, '#'), '', true); - $feedbackformat = $this->getpath($answer, - array('#', 'feedback', 0, '@', 'format'), $this->get_format($qo->questiontextformat)); - $feedbackfiles = $this->getpath($answer, - array('#', 'feedback', 0, '#', 'file'), array()); - $files = array(); - foreach ($feedbackfiles as $file) { - $data = new stdClass(); - $data->content = $file['#']; - $data->encoding = $file['@']['encoding']; - $data->name = $file['@']['name']; - $files[] = $data; - } + $feedback = $this->import_text_with_files($answer, + array('#', 'feedback', 0), '', $this->get_format($qo->questiontextformat)); + if ($answertext != 'true' && $answertext != 'false') { // Old style file, assume order is true/false. $warning = true; @@ -525,17 +533,11 @@ class qformat_xml extends qformat_default { if ($answertext == 'true') { $qo->answer = ($answer['@']['fraction'] == 100); $qo->correctanswer = $qo->answer; - $qo->feedbacktrue = array(); - $qo->feedbacktrue['text'] = $feedback; - $qo->feedbacktrue['format'] = $this->trans_format($feedbackformat); - $qo->feedbacktrue['files'] = $files; + $qo->feedbacktrue = $feedback; } else { $qo->answer = ($answer['@']['fraction'] != 100); $qo->correctanswer = $qo->answer; - $qo->feedbackfalse = array(); - $qo->feedbackfalse['text'] = $feedback; - $qo->feedbackfalse['format'] = $this->trans_format($feedbackformat); - $qo->feedbackfalse['files'] = $files; + $qo->feedbackfalse = $feedback; } $first = false; } @@ -650,13 +652,8 @@ class qformat_xml extends qformat_default { $qo->instructions['format'] = FORMAT_HTML; $instructions = $this->getpath($question, array('#', 'instructions'), array()); if (!empty($instructions)) { - $qo->instructions = array(); - $qo->instructions['text'] = $this->getpath($instructions, - array('0', '#', 'text', '0', '#'), '', true); - $qo->instructions['format'] = $this->trans_format($this->getpath($instructions, - array('0', '@', 'format'), $this->get_format($qo->questiontextformat))); - $qo->instructions['files'] = $this->import_files($this->getpath( - $instructions, array('0', '#', 'file'), array())); + $qo->instructions = $this->import_text_with_files($instructions, + array('0'), '', $this->get_format($qo->questiontextformat)); } if (is_null($qo->showunits)) { @@ -691,14 +688,9 @@ class qformat_xml extends qformat_default { $qo->subquestions = array(); $qo->subanswers = array(); foreach ($question['#']['subquestion'] as $subqxml) { - $subquestion = array(); - $subquestion['text'] = $this->getpath($subqxml, array('#', 'text', 0, '#'), '', true); - $subquestion['format'] = $this->trans_format($this->getpath($subqxml, - array('@', 'format'), $this->get_format($qo->questiontextformat))); - $subquestion['files'] = $this->import_files($this->getpath($subqxml, - array('#', 'file'), array())); + $qo->subquestions[] = $this->import_text_with_files($subqxml, + array(), '', $this->get_format($qo->questiontextformat)); - $qo->subquestions[] = $subquestion; $answers = $this->getpath($subqxml, array('#', 'answer'), array()); $qo->subanswers[] = $this->getpath($subqxml, array('#', 'answer', 0, '#', 'text', 0, '#'), '', true); @@ -728,12 +720,8 @@ class qformat_xml extends qformat_default { array('#', 'responsefieldlines', 0, '#'), 15); $qo->attachments = $this->getpath($question, array('#', 'attachments', 0, '#'), 0); - $qo->graderinfo['text'] = $this->getpath($question, - array('#', 'graderinfo', 0, '#', 'text', 0, '#'), '', true); - $qo->graderinfo['format'] = $this->trans_format($this->getpath($question, - array('#', 'graderinfo', 0, '@', 'format'), $this->get_format($qo->questiontextformat))); - $qo->graderinfo['files'] = $this->import_files($this->getpath($question, - array('#', 'graderinfo', '0', '#', 'file'), array())); + $qo->graderinfo = $this->import_text_with_files($question, + array('#', 'graderinfo', 0), '', $this->get_format($qo->questiontextformat)); return $qo; } @@ -767,13 +755,8 @@ class qformat_xml extends qformat_default { $qo->instructions = $this->getpath($question, array('#', 'instructions', 0, '#', 'text', 0, '#'), '', true); if (!empty($instructions)) { - $qo->instructions = array(); - $qo->instructions['text'] = $this->getpath($instructions, - array('0', '#', 'text', '0', '#'), '', true); - $qo->instructions['format'] = $this->trans_format($this->getpath($instructions, - array('0', '@', 'format'), $this->get_format($qo->questiontextformat))); - $qo->instructions['files'] = $this->import_files($this->getpath($instructions, - array('0', '#', 'file'), array())); + $qo->instructions = $this->import_text_with_files($instructions, + array('0'), '', $this->get_format($qo->questiontextformat)); } // get answers array @@ -817,13 +800,8 @@ class qformat_xml extends qformat_default { } $instructions = $this->getpath($question, array('#', 'instructions'), array()); if (!empty($instructions)) { - $qo->instructions = array(); - $qo->instructions['text'] = $this->getpath($instructions, - array('0', '#', 'text', '0', '#'), '', true); - $qo->instructions['format'] = $this->trans_format($this->getpath($instructions, - array('0', '@', 'format'), $this->get_format($qo->questiontextformat))); - $qo->instructions['files'] = $this->import_files($this->getpath($instructions, - array('0', '#', 'file'), array())); + $qo->instructions = $this->import_text_with_files($instructions, + array('0'), '', $this->get_format($qo->questiontextformat)); } if (is_null($qo->unitpenalty)) { diff --git a/question/format/xml/tests/fixtures/multichoice.xml b/question/format/xml/tests/fixtures/multichoice.xml new file mode 100644 index 00000000000..dbf58455cf9 --- /dev/null +++ b/question/format/xml/tests/fixtures/multichoice.xml @@ -0,0 +1,63 @@ + + + + + + $course$/Default for testhead/Multichoice + + + + + + + + Greeting + + + Listen to this greeting:

What language is being spoken?

]]>
+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oFl7pz/jb6rABwGCAGDAGhSDiEYjCYFBTQjFYJHgumNR////////////+v69////////////7sToIDJhMBjQYMHDsFBgwCBDdpEfY20TiErmN0iYRIBteqiV1NLe81CJTXUoNyiIw8VAeLDFhQMML41sHTEYbBrIMVlcw8LjTAuaCxIzGXVfEoFMhG54CAIqFNyV/Xd56yYPTCzG6qYU61nheF5IKUtZ02WWOUqtKpuii81BRfNnAXD7ZoKY7khaoKOBNTRmrv05UBikgYAyIeNbxfsGhNUZAOB4XP4XDSeoX0MDAorApAOiIjOiWkfdiEMhcKNKEYuMJACDkt4qCQOBgwCAMZeCACCCOtosA4LgQlAAkDa6E0RCcvABA//LCwD145VuTxnQBnOAA8LFlX6lU8yoAghQIIF76FthgPtIBwAM3j9nrOc24l1nCFQE/YsAe/70ts5RICy7o6Dy4QiDIICRgYNhUXJfCME3/+Z3MgwAMVCoFBAQS4MTCMVFAYLyYYmFwDz//8Eqh0DLtlsoQ5AENltwENQMAiIA2f////////////JgBz////////////4dTEFNRTMuOTWqqqgAAHHsAAYVAUYBiiAh5BIHiRECotGiaPGD4vG5w/mDgamtpLmAwNmW/8GUxUGu6Dm2AuGVmHhAGGFaID4dmEYqmH4dnMYKBB1mAZgmvIQmFIyGWJxioCgAETJwvAUCq0jGkdS5AhAIHDSDAUMXgfRVCA1CojGKIKjgDFrhACQKIpTERhHOCEF0uSwAyARziqBcgWkUBk9xADLEyEBV9LRVqHgLL7GNwCr3HgJlooCpeEwDEgwaAWyztsinClBgaHimRZgBA2wwEBQNBgDgCMNgbkhfxsBbBp7WjBYGhAD6xnmBQBGAoE5MiMGgVbGFwNhquhiWpAAYqAigHmWQ9GP/ywsBMeP9qc8pgcZ3oAAgHBQANCAGCsACyw4DKlg8CQWDUKBGYShMYLE+YKBChjGB0DgICBEJJgWBTzRkIA0CAuBRKMUQCMNwssy53kIgEB6OMzFMv//8LARFy7wJBIgA4wjAYHCwWhMHAjKAixwwsdjhKBCA0FAyWAJKoFBcEDAsLDCMCh4LwwGtz0v68MDI7OwkkzVDqPAKNAIVAMLvMedTn////////////3+f////////////OcgAJmQABIvDDVFw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aT3y3///MCg7MVhnFiUMOhpMSAXMDAjMHg5yjL//ywsCcOINahC4EAZ3oABSqerSr////zAgDDC8RjBIQzFoWzGAiQCBhhSIRiiOxiAQte5yVQTMw7Eq3/////5jsGYyAxgABBjyXhmCQxhmERh0QJkMKZiUOJKTxluBRk2jxpKZFNTTU+wF0YQ1qozpGVpMC////////+YJjuAhCMTBlMKAyMIAdAIJBUGzCsPBEJpiwA5igRJi8DKPRgEAZgGDgcFUMujIHafaRv7KYq0p9pFqt3H//////////1Amxoqx1iLGoquZlbDnxdxyXqfNrUTkDSYTax5//rXcd81/7/9f///////////////1r8pyps0xBTUUzLjk1VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/8sLAaDysAAADSAGAAABVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVTEFNRTMuOTVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//LCwByZ/wAAA0gBgAAAVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjk1VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQ==
+ + + + 1.0000000 + 0.1000000 + 0 + true + true + abc + + + + + + + + + + + British Flag English

]]>
+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 + Sorry, listen again.

]]>
+
+
+ + French flag French

]]>
+/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgAFAAeAwERAAIRAQMRAf/EALYAAAMBAQAAAAAAAAAAAAAAAAgJCgcLAQADAQEAAAAAAAAAAAAAAAAHCAkFChAAAAEHCQEIEwEAAAAAAAAAAgEREgMTBAUAFBUGFgcXCAkYMUFhMkIjdSchUYEisjOktDZmN0dnxzhIiLgKOREAAAEIAwUQEAcAAAAAAAAAAQARAhIDEwQFFAYHQaEzFRYhMVFxscHRIkKCI3M0hDUXgZFyorLCQ4OTo7O0RYU3CbXFJjZHCBj/2gAMAwEAAhEDEQA/ABDzlatOaG7e+OM1XgMTdiOEPeX53ViG9vQBjCoeWYCiCAKJCkCSVB6p2YVcmEpQiWyIrpAFwNAl3m9aZlDxYskB2oCJWtaIl9Vb8w+mBljvir4tAvrXXDGilVoBjWBFZ/MJexVdxMNZ35UYbBFJOzvkkolsMohZFaNMZVBAaGZUdXfQrFMb6QkYamxjWPq3DRbfCpvD9hqmiF4CFzXNzN3i5ctl2wDwrUWxxspZNasVpWewjmBmZCnRpxdu9uQTnsU0hnTvdLXldkq1fbbsdqpazlnlOiKWL8UOjAA4fGa+fxKBTaPWo1mPer0YbGx1lWhUw2DrmMJA9LyOKxY8O706DXricYa0gV5SkLuEMThlioRjdJmnECO2RADBpiAFQ6sFg1nUqrTIbNoOCZhATSKiEm7YUQFqkDGCiG6CAXAQBNkiIhdHNEcwABJ+oX9RFaekIp56WViKi9BM+5DULkCn/SCWmJdED+cv/GjJz+Qn7UX4SRG3v6szbmvucOR6s/8A2jCed9s0IL/6S/sx/Ir5FSXesvkd/wCKVzftFfyD8i/OSlJL6ZE6JJ4YpYbLkbXSDwgKjlcvrjVDjY38MjSW5mgs5jxeZaS3dLWqik58cY84FxJ5zrE/E5KJjSpel1mUdjQ1aG7BR2ZU2ofRLjODJh4m+O+WFZbPPsFUzpW7cOwXcRgHijhN1n2UmzBh7Zbw6dQP6yzw/CeSm2k41y1jcdnxnwK58/AMle8VIuVZomI2FB5Lt1fSJnvnLA9WDa06hNoHE73pWSnM3+HNPIeRH7khdNqNwdINujXj6xUV/o/1tfqfqtX+HUpXn7k/rSTu6T6dRZpb6l6Odpu0ZtGU+d02CPNpM0jpck5t6WajQXSRjKZh+2GuTeTj/R2WkppzzKR42oxzn5K2eGuYJ4e6X//Z + Yes, well done!

]]>
+
+
+ + German flag German

]]>
+/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgAFAAeAwERAAIRAQMRAf/EAKYAAQACAwAAAAAAAAAAAAAAAAcACQEICgEAAQMFAQAAAAAAAAAAAAAAAAUGCQECAwQHCBAAAAMFBQMICwAAAAAAAAAAAQIFEQMEBggAMRIUByETFWEyldUWF1cYQVFxgZGhsSIjNSgRAAACBQYGDQ0AAAAAAAAAAAEEABECAwUhMRITBgdhk9MVFghBkaEiMtIjoxTUVVYXUYHBUmKiwnM1lSYnGP/aAAwDAQACEQMRAD8ApA1tqzq/RdQlxOSpRn4YGHinjtxuZTmM7vAUwlBhiQLLg9dk9qOQJkVNnSgDhfOw+JHm7uwvOfs1jizkfbdjMLMPNiA+cHIghOFZlahQYWVNRwALgCUpoAPgEFawY3Z0RWJwkI/OdcZMnhXer3atD9uOZFMDWZWoN8p6jD7ZSmgfrBWAjdnQmOksc64yVC629YJrNWi+3HMihAtVN1dKmqMnTVGImoIK0tPFR4kp3ZqYimO8UENUSYl4LgYPePTFgo94xgbL7ZAjMDFgWwNlKsJxrXatukpNdq7m8tl+yVagEdA01wWBIm6YyLFTNUsZAEZAmTqM1SpOqUjpyVomD0smN9DvIh4Lt4SPQylMAmFjAMslH5Wixjms9q/k4i8LmrSkWHzIygLsysNpwKT+2Rviu7LwNy6fRlyy8BkFhy3EQ78oVTvhPMvSKD13ZI/qjV370EMUZ6ujm8aLtu23HPZNJ5QqnfCeZekUHrux/VGrv3oIYoz1dDxou27bcc9k01zWqXah3Wu8mpDzTSYCqcTxTLwox6KLx5u0NVenwmBXF2GF27MO0wXWepXWRuLe2SMxR3aIkMPd0KTdWYUC3jABJULlEQCQNlOUxC9mwLd5BA6zF3IlmKxbXKqBbp4HqLnEAS+zXvzHdvY3gOS4EweG5HHzMX5M3j+7OYuf6GMZsZaHKC6C0X2ltZpHWjXUpl7FD2FcHZnXKtPBhnO62c3K6FR3qvTh8qCf9R8tlv8AUaav5Jh3Un9R8tj9RofkmHdQXU++PvXlvON7bNj+EXN/WR+Z92S3tn0U0H0ONVH0DeVmMYo+9RRKeZ2zk7pr6ZLR2hXuLT//2Q== + Sorry, listen again.

]]>
+
+
+ + Denmark flag Danish

]]>
+/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgAFAAeAwERAAIRAQMRAf/EALoAAAMBAQAAAAAAAAAAAAAAAAYJCgQHAQACAgMBAAAAAAAAAAAAAAAHCQYIAwQFChAAAAAKBwIIDwEAAAAAAAAAARECEgMTBBQVFwAFBhYIGAkxByFBM2QnR2cZYSJC0iNDhJSkVShoqOgKGhEAAAMEBQQICxkAAAAAAAAAARECEgMTFAAEBRUGMRYHFyFBIqJjCBgJUWFxcoJDg2RFZSaBkaGx0TJCUmKSsjNTcyREpOQl5aYnZygZ/9oADAMBAAIRAxEAPwAlxSak2IOwu9CtLP1O3oAMbEna0KMJTQ0ElFEok5hBwCSTQBAClHsTaRLeqNpKq7lQMJEQyjT1R6DuJpolxRghxa1oulTDxCBHcpHKkxo6HX9xWbzMMeUyXTSjZ77z3jCxKlRH3ak1DxKwBONj6fbsHQwadcUWlhu6rvEo0y12EuXwhot/moNBGCtNmf2eCBXdlyQSABKYveJl+YRSc3vWMTHzFn96afNpX7WhiP2weeNHB8hLQt8iv3qfVoD1tqfYnWy3FlK2vIWgQVQzVwVDELU0EsrclamJMxgSNgRHFgZyGg4gkQgFgGEfALO6x3iCsu3tpLeiCqsgGUgIkIrWlAirqAoSDo05VocU3Q9YddqGCavZ7tbu26ysHr9SQF47RV6u+rKUugyA08cpbUZinYAgM6L99n9Gcnbb1hY3JzeJwTNCGJZhIQtUJVZznI+tDD9oloRUNls8YG6K6qp3REZEQOaZydKWV6dFdaNOZ71iYZdYi1iScVKRh3DFJoD9ffTsy60KMH1RNUTu2ZG9Bs55zzM6zJdXbl1L7s+t3GIxfvmru6+tW+jnukvSXq7kvoU5ORu3QmIULgnjTUT3JM7Z7FSuI/xH+WXnP5T5t5t3d4OvCYvCf7/qUGDJcLEi+wY3amf9RP2N/kx+v1BZylfEv2z7rS+/+IH8n/pz8+pyi1H9Kcc3n7srXZLnW5RdpGuH5jF8Sitm63qBW9yJQuaiLrRqkpys0QDjid5xxiY9Tf1u5yggkSmzNpaU5ZbYJo8g5CpFbW5mW68R2XYGshu8nj1ETN9mHCq75+bN9i21CYJpJNNGJEM2WLycM+Lev0UFH6ydXh3Vu7wFW7eSpNFs49vDQS1rNCdfXzMTkQTaLe7RdSjEMP8AKLzXszVrc2bkmhmC0Zl20903121k2KOC16c830p5hnPrzuhC1PY9H15/sRovDQ66cM3fwu/2/rMNnuDR72in+au1zeXeqOX8CzcU/G0Bku7H5lJ4+lLnXwtAJ+3XC+hRuf8AczvDfUwFzGiSBc/PbqmdDXMzlES5YPxuSGIXHTpVbMOQrMKJLspb6JREEXZFSE25ys87rFnZO9oz+XI2WpSsRGtv4psi2yp//9k= + Sorry, listen again.

]]>
+
+
+
+ +
\ No newline at end of file diff --git a/question/format/xml/tests/fixtures/truefalse.xml b/question/format/xml/tests/fixtures/truefalse.xml new file mode 100644 index 00000000000..2453a30d4b7 --- /dev/null +++ b/question/format/xml/tests/fixtures/truefalse.xml @@ -0,0 +1,68 @@ + + + + + + $course$/Default for testhead/TrueFalse + + + + + + + + Moodle acronym (False) + + + Moodle Moodle logo is an acronym for Modular Object-Oriented Dynamic Learning Education.

]]>
+/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBggGBQkIBwgKCQkKDRYODQwMDRoTFBAWHxwhICocHh4jJzIqIyUvLR4eNzssLy41ODg0JSo4QTAqPDwsNDUBCQoKDQsNGQ4OGTUkHiQ1NTU1NTU1NTU1NTUuNTU1LTU1NTU1NTQsMjU1NTU1NSk0KSw0MjQ2Miw1NDQyNDQ0Nf/AABEIADAAMAMBIgACEQEDEQH/xAAbAAEAAgIDAAAAAAAAAAAAAAAHAAYDBQEECP/EADUQAAEDAwEEBgcJAAAAAAAAAAECAwQABREGEiExURNBYXORsQcUFRZDYqEXIyQ2QnGywfD/xAAYAQEAAwEAAAAAAAAAAAAAAAAAAQMEAv/EACIRAAEEAgIBBQAAAAAAAAAAAAMAAQIEETESIeEFUYGhsf/aAAwDAQACEQMRAD8AcalSsT8lmMkKfdbaSeBWoJH1oiy1K0z+sbDGTly7Q+WEuhR8BWW16lt16dUm3vF9KeLiUKCM8tojGaItpUqVKIqRq7Xr9sBj2i3yZEg/FUyoIT2jPH/caHbtepdzubqr3ch06fhLXgp7N/DwFOMwx/f9MZxoEuQUuBRJI3OKGMcOsdtHOsNMRGLxNu7TilqcfUVNuIBAwcYBGKpKcYcc3xlWjFMueDaVEj3Bj2mwOi9ZZ6QBaUfqGeA516GsKbTAtTD7LiSgpGyAN6ezZHDFG1j9GsyVLXd0pSwlP3jTSgOXnXfuM+VDiNR4qg2uSpKARu3msNu7MBIwjHPL9WqtViaDzeWkie9ltSrZcW432qbOK2caUzLZDsdxLrauCknIo6XpCdbrYJ65q3hu20L5E43eNcaZubtq1emEFH1eUkko6goddViuHhYYB2bvWF3OsKQXKF9e6sdzVI+0SGCn8N6go7Xz9Kn+qquskj2fK71f8qTHojTzyHlIBcQMJV1gccfQUa6ptl7lPSYzVv2mluKUle2N4Jzzp6oEheHBs4dcUiRg8uT46V8s35fa7s+VHN8QBNtffN+YpItTTjdjbQUkL6PGDzo6m2q9yrnEDtvKG47ySVBQO4H96i+EhDilBum39KapIxHNnfaQruM6acHyJ8xVAaSB6QIGOSqQbsy+7px1uO30j2wnZRnGSCKoVstt3e1dFly4JZbbyCQoGoshJK8ObN02O/l0CSLVpRd+38L/2Q==
+ + InformationsFor further information, see the documentation about Moodle.

]]>
+/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBggGBQkIBwgKCQkKGRYaDQwMDRodFBAhKhwlIB8lHh4jIjIoIyQvJSQeKy8sLzMtODgsISo9QTs2QTIuMywBCQoKDQsNGQ4OGTUkHiQ1NTU1NTU1NTU1NTU1NTU1Ly82NTU1NDUtLTQ0NTU1MCwsLCw0KTU0LzU2NjMpKTQ2Kf/AABEIADEAIgMBIgACEQEDEQH/xAAaAAEAAwEBAQAAAAAAAAAAAAAABQYHBAID/8QALhAAAQMCBAMHBAMAAAAAAAAAAgABAwQFBhEhMUFRgRITIjJxsfAHYWKRFBVC/8QAGQEAAgMBAAAAAAAAAAAAAAAAAAEDBAUC/8QAIREAAgEDBAMBAAAAAAAAAAAAAAECAxExBBITISIjQQX/2gAMAwEAAhEDEQA/ANxXk5AiHtSGINzJ8lz3GvitlCdTOTCAcVl16xZU3SoMhMoof8iz65fdWaGmlXfWCOpUUMmrDVwGbCM8RE+zMbZuvqsdvzR2WSme3Xf+W8o5n3ZeX11dsn5PyVowJjUrof8AX1xN3w+Qufzbq3TuppHCHJF3RzGqnLa8l6REVMmKV9UpzhsMLA7sJF4v2yySe5OD9mPV+LvwW84osg3+xzUj6G7eF23+cfVmWAXW01Vnrnp62JwJn0LLwn6fNFt/mzi4OH0p6iLvuJ3HZi01EUEQQCTFm0YMLPtyUdg+eePFNI8RF2vFx/F392ZSGN7va7sVva0yHI0Ik0jlG46u7ZZZ77Kx/TPBdQFc1zr4ii7HkAm1bjryd9NOWee7KS/Fo/Zl3FbdV8TV0RFgF0LiuFmoboDjWU4SZ75t78H6rtRCdgISiwdaKCbvYKUBPg4gIu3UWZ1MhGEQMEYsAtswtoy9Im5OXbYrWCIiQwiIgAiIgAiIgD//2Q==
+ 1.0000000 + 1.0000000 + 0 + + true + + Thumb down Your answer is incorrect.

]]>
+/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0iIiAdHx8kKDQsJCYxJx8fLT0tMTU3Ojo6Iys/RD84QzQ5Ojf/2wBDAQoKCg0MDRoPDxo3JR8lNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzf/wAARCAAYABgDASIAAhEBAxEB/8QAGgABAAIDAQAAAAAAAAAAAAAAAAQFAQMGB//EACcQAAIBAwMDBAMBAAAAAAAAAAECAwAEBQYRIRITMTJBUXEiUmKh/8QAFwEAAwEAAAAAAAAAAAAAAAAAAgQFA//EACIRAAIBAwQCAwAAAAAAAAAAAAECAwAEERIhMVEFQROh8f/aAAwDAQACEQMRAD8A9AubiTK5m5t5JpEihZlVUiaTbpO3pX5PvWy4wLR2Ml1Fc9QRS/TJAYzsPPnn2+KqsdcompsksjxoO7MAZLpoBv3P2Uf5XTX17BFpm7l7iSKI2jJhnM4DNwPyPJ9QPPipiKkgZn537q9N8kLIkfBx17+6qrd7vC5i2tZpFKzMoKoSVIY7b/e9KrchmoMtqXGS2qyKglhTZwAd+5v7fdKYtGB1BTsDtSfkY2XQzjDEb1jVGlb45Oe6sYmmincuQnJUnzx91GgsdQQ4efFrj5jBO4diYh1Ajbwer+RSlC1jGWLAkZ6/KJPLzhFQgHGOR1x7qTpfSt8MnBdX0TQxQOHAfgsR44+6UpW8ECwrpWlLq7kun1yV/9k=
+
+ + false + + Thumb up Your answer is correct.

]]>
+/9j/4AAQSkZJRgABAQEAYABgAAD/4RDARXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAExAAIAAAAuAAAIVgEyAAIAAAAUAAAIhIdpAAQAAAABAAAImOocAAcAAAgMAAAASgAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE1pY3Jvc29mdCBXaW5kb3dzIFBob3RvIFZpZXdlciA2LjEuNzYwMC4xNjM4NQAyMDEzOjAxOjEwIDE4OjI1OjUzAAAB6hwABwAACAwAAAiqAAAAABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4TG4aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49J++7vycgaWQ9J1c1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCc/Pg0KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyI+PHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+PHhtcDpDcmVhdG9yVG9vbD5NaWNyb3NvZnQgV2luZG93cyBQaG90byBWaWV3ZXIgNi4xLjc2MDAuMTYzODU8L3htcDpDcmVhdG9yVG9vbD48L3JkZjpEZXNjcmlwdGlvbj48L3JkZjpSREY+PC94OnhtcG1ldGE+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3hwYWNrZXQgZW5kPSd3Jz8+/9sAQwADAgIDAgIDAwMDBAMDBAUIBQUEBAUKBwcGCAwKDAwLCgsLDQ4SEA0OEQ4LCxAWEBETFBUVFQwPFxgWFBgSFBUU/9sAQwEDBAQFBAUJBQUJFA0LDRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AAEQgAGAAYAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A99+OX7RviD/hMdS0fQrt9O0/TpzAzwLh5WUfP83+9WHqPjz4o6Z4D0zxZJ4n1FtPv5ngiCXKeYrLu+8vlf8ATJ61fB3wssfiL8W/FVjfyTRQ/a76dXhKht32nb/ED617p4Y8IadbfA3RbOSCKaFbZLtFvtPfUQkkh3N+6T5m/wBYy/L90e1fndHDYzHValWVVqOtrO2x+w4jG5RleGw9CGHjOS5XO63TXQ8T+CP7RviE+MtN0XxBdvqWn6lOsKNcDc8bsPl+f/eoqv4x0CGy+Lfhia2SCKNbuycrbaVLp6l/tP8Azykb9aK7MFjMRhoSo1ZtuL3/AKZ4ue4HA4ypSxNCkoKcU2vmzvdY0zV/hR4/1TUrOCNo7ySSRJpi5jZZG3bf97dV3Svi5LZ+GbXRbvShPFBGsHm2t+9qwVRhMbfmH3f71FFefi8TVwdepSouy1PXwOEoZlg6dfExvKy8tvQztH8PXHxB8d6TfQ2NxaWVpIksks13LcFfLfcB5sn95v4P9miiivpsqw8MRQdSpq2/L/I+SzitOjinRp6RirL+mf/Z
+
+
+ + + + + Moodle acronym (True) + + + Moodle Moodle logo is an acronym for Modular Object-Oriented Dynamic Learning Environment.

]]>
+/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBggGBQkIBwgKCQkKDRYODQwMDRoTFBAWHxwhICocHh4jJzIqIyUvLR4eNzssLy41ODg0JSo4QTAqPDwsNDUBCQoKDQsNGQ4OGTUkHiQ1NTU1NTU1NTU1NTUuNTU1LTU1NTU1NTQsMjU1NTU1NSk0KSw0MjQ2Miw1NDQyNDQ0Nf/AABEIADAAMAMBIgACEQEDEQH/xAAbAAEAAgIDAAAAAAAAAAAAAAAHAAYDBQEECP/EADUQAAEDAwEEBgcJAAAAAAAAAAECAwQABREGEiExURNBYXORsQcUFRZDYqEXIyQ2QnGywfD/xAAYAQEAAwEAAAAAAAAAAAAAAAAAAQMEAv/EACIRAAEEAgIBBQAAAAAAAAAAAAMAAQIEETESIeEFUYGhsf/aAAwDAQACEQMRAD8AcalSsT8lmMkKfdbaSeBWoJH1oiy1K0z+sbDGTly7Q+WEuhR8BWW16lt16dUm3vF9KeLiUKCM8tojGaItpUqVKIqRq7Xr9sBj2i3yZEg/FUyoIT2jPH/caHbtepdzubqr3ch06fhLXgp7N/DwFOMwx/f9MZxoEuQUuBRJI3OKGMcOsdtHOsNMRGLxNu7TilqcfUVNuIBAwcYBGKpKcYcc3xlWjFMueDaVEj3Bj2mwOi9ZZ6QBaUfqGeA516GsKbTAtTD7LiSgpGyAN6ezZHDFG1j9GsyVLXd0pSwlP3jTSgOXnXfuM+VDiNR4qg2uSpKARu3msNu7MBIwjHPL9WqtViaDzeWkie9ltSrZcW432qbOK2caUzLZDsdxLrauCknIo6XpCdbrYJ65q3hu20L5E43eNcaZubtq1emEFH1eUkko6goddViuHhYYB2bvWF3OsKQXKF9e6sdzVI+0SGCn8N6go7Xz9Kn+qquskj2fK71f8qTHojTzyHlIBcQMJV1gccfQUa6ptl7lPSYzVv2mluKUle2N4Jzzp6oEheHBs4dcUiRg8uT46V8s35fa7s+VHN8QBNtffN+YpItTTjdjbQUkL6PGDzo6m2q9yrnEDtvKG47ySVBQO4H96i+EhDilBum39KapIxHNnfaQruM6acHyJ8xVAaSB6QIGOSqQbsy+7px1uO30j2wnZRnGSCKoVstt3e1dFly4JZbbyCQoGoshJK8ObN02O/l0CSLVpRd+38L/2Q==
+ + InformationsFor further information, see the documentation about Moodle

+

.

]]>
+/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBggGBQkIBwgKCQkKGRYaDQwMDRodFBAhKhwlIB8lHh4jIjIoIyQvJSQeKy8sLzMtODgsISo9QTs2QTIuMywBCQoKDQsNGQ4OGTUkHiQ1NTU1NTU1NTU1NTU1NTU1Ly82NTU1NDUtLTQ0NTU1MCwsLCw0KTU0LzU2NjMpKTQ2Kf/AABEIADEAIgMBIgACEQEDEQH/xAAaAAEAAwEBAQAAAAAAAAAAAAAABQYHBAID/8QALhAAAQMCBAMHBAMAAAAAAAAAAgABAwQFBhEhMUFRgRITIjJxsfAHYWKRFBVC/8QAGQEAAgMBAAAAAAAAAAAAAAAAAAEDBAUC/8QAIREAAgEDBAMBAAAAAAAAAAAAAAECAxExBBITISIjQQX/2gAMAwEAAhEDEQA/ANxXk5AiHtSGINzJ8lz3GvitlCdTOTCAcVl16xZU3SoMhMoof8iz65fdWaGmlXfWCOpUUMmrDVwGbCM8RE+zMbZuvqsdvzR2WSme3Xf+W8o5n3ZeX11dsn5PyVowJjUrof8AX1xN3w+Qufzbq3TuppHCHJF3RzGqnLa8l6REVMmKV9UpzhsMLA7sJF4v2yySe5OD9mPV+LvwW84osg3+xzUj6G7eF23+cfVmWAXW01Vnrnp62JwJn0LLwn6fNFt/mzi4OH0p6iLvuJ3HZi01EUEQQCTFm0YMLPtyUdg+eePFNI8RF2vFx/F392ZSGN7va7sVva0yHI0Ik0jlG46u7ZZZ77Kx/TPBdQFc1zr4ii7HkAm1bjryd9NOWee7KS/Fo/Zl3FbdV8TV0RFgF0LiuFmoboDjWU4SZ75t78H6rtRCdgISiwdaKCbvYKUBPg4gIu3UWZ1MhGEQMEYsAtswtoy9Im5OXbYrWCIiQwiIgAiIgAiIgD//2Q==
+ 1.0000000 + 1.0000000 + 0 + + true + + thumb up Your answer is correct.

]]>
+/9j/4AAQSkZJRgABAQEAYABgAAD/4RDARXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAExAAIAAAAuAAAIVgEyAAIAAAAUAAAIhIdpAAQAAAABAAAImOocAAcAAAgMAAAASgAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE1pY3Jvc29mdCBXaW5kb3dzIFBob3RvIFZpZXdlciA2LjEuNzYwMC4xNjM4NQAyMDEzOjAxOjEwIDE4OjI1OjUzAAAB6hwABwAACAwAAAiqAAAAABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4TG4aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49J++7vycgaWQ9J1c1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCc/Pg0KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyI+PHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+PHhtcDpDcmVhdG9yVG9vbD5NaWNyb3NvZnQgV2luZG93cyBQaG90byBWaWV3ZXIgNi4xLjc2MDAuMTYzODU8L3htcDpDcmVhdG9yVG9vbD48L3JkZjpEZXNjcmlwdGlvbj48L3JkZjpSREY+PC94OnhtcG1ldGE+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3hwYWNrZXQgZW5kPSd3Jz8+/9sAQwADAgIDAgIDAwMDBAMDBAUIBQUEBAUKBwcGCAwKDAwLCgsLDQ4SEA0OEQ4LCxAWEBETFBUVFQwPFxgWFBgSFBUU/9sAQwEDBAQFBAUJBQUJFA0LDRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AAEQgAGAAYAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A99+OX7RviD/hMdS0fQrt9O0/TpzAzwLh5WUfP83+9WHqPjz4o6Z4D0zxZJ4n1FtPv5ngiCXKeYrLu+8vlf8ATJ61fB3wssfiL8W/FVjfyTRQ/a76dXhKht32nb/ED617p4Y8IadbfA3RbOSCKaFbZLtFvtPfUQkkh3N+6T5m/wBYy/L90e1fndHDYzHValWVVqOtrO2x+w4jG5RleGw9CGHjOS5XO63TXQ8T+CP7RviE+MtN0XxBdvqWn6lOsKNcDc8bsPl+f/eoqv4x0CGy+Lfhia2SCKNbuycrbaVLp6l/tP8Azykb9aK7MFjMRhoSo1ZtuL3/AKZ4ue4HA4ypSxNCkoKcU2vmzvdY0zV/hR4/1TUrOCNo7ySSRJpi5jZZG3bf97dV3Svi5LZ+GbXRbvShPFBGsHm2t+9qwVRhMbfmH3f71FFefi8TVwdepSouy1PXwOEoZlg6dfExvKy8tvQztH8PXHxB8d6TfQ2NxaWVpIksks13LcFfLfcB5sn95v4P9miiivpsqw8MRQdSpq2/L/I+SzitOjinRp6RirL+mf/Z
+
+ + false + + thumb down Your answer is incorrect.

]]>
+/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0iIiAdHx8kKDQsJCYxJx8fLT0tMTU3Ojo6Iys/RD84QzQ5Ojf/2wBDAQoKCg0MDRoPDxo3JR8lNzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzf/wAARCAAYABgDASIAAhEBAxEB/8QAGgABAAIDAQAAAAAAAAAAAAAAAAQFAQMGB//EACcQAAIBAwMDBAMBAAAAAAAAAAECAwAEBQYRIRITMTJBUXEiUmKh/8QAFwEAAwEAAAAAAAAAAAAAAAAAAgQFA//EACIRAAIBAwQCAwAAAAAAAAAAAAECAwAEERIhMVEFQROh8f/aAAwDAQACEQMRAD8A9AubiTK5m5t5JpEihZlVUiaTbpO3pX5PvWy4wLR2Ml1Fc9QRS/TJAYzsPPnn2+KqsdcompsksjxoO7MAZLpoBv3P2Uf5XTX17BFpm7l7iSKI2jJhnM4DNwPyPJ9QPPipiKkgZn537q9N8kLIkfBx17+6qrd7vC5i2tZpFKzMoKoSVIY7b/e9KrchmoMtqXGS2qyKglhTZwAd+5v7fdKYtGB1BTsDtSfkY2XQzjDEb1jVGlb45Oe6sYmmincuQnJUnzx91GgsdQQ4efFrj5jBO4diYh1Ajbwer+RSlC1jGWLAkZ6/KJPLzhFQgHGOR1x7qTpfSt8MnBdX0TQxQOHAfgsR44+6UpW8ECwrpWlLq7kun1yV/9k=
+
+
+ +
\ No newline at end of file diff --git a/question/format/xml/tests/xmlformat_test.php b/question/format/xml/tests/xmlformat_test.php index fd5eb553589..fd409c23b0c 100644 --- a/question/format/xml/tests/xmlformat_test.php +++ b/question/format/xml/tests/xmlformat_test.php @@ -202,9 +202,9 @@ END; $this->assertEquals(array( array('text' => 'This is the first hint', - 'format' => FORMAT_HTML, 'files' => array()), + 'format' => FORMAT_HTML), array('text' => 'This is the second hint', - 'format' => FORMAT_HTML, 'files' => array()), + 'format' => FORMAT_HTML), ), $qo->hint); $this->assertFalse(isset($qo->hintclearwrong)); $this->assertFalse(isset($qo->hintshownumcorrect)); @@ -232,9 +232,9 @@ END; $this->assertEquals(array( array('text' => 'This is the first hint', - 'format' => FORMAT_HTML, 'files' => array()), + 'format' => FORMAT_HTML), array('text' => 'This is the second hint', - 'format' => FORMAT_HTML, 'files' => array()), + 'format' => FORMAT_HTML), ), $qo->hint); $this->assertEquals(array(1, 0), $qo->hintclearwrong); $this->assertEquals(array(0, 1), $qo->hintshownumcorrect); @@ -360,7 +360,6 @@ END; $expectedq->attachments = 0; $expectedq->graderinfo['text'] = ''; $expectedq->graderinfo['format'] = FORMAT_MOODLE; - $expectedq->graderinfo['files'] = array(); $this->assert(new question_check_specified_fields_expectation($expectedq), $q); } @@ -405,7 +404,6 @@ END; $expectedq->attachments = -1; $expectedq->graderinfo['text'] = '

Grade generously!

'; $expectedq->graderinfo['format'] = FORMAT_HTML; - $expectedq->graderinfo['files'] = array(); $this->assert(new question_check_specified_fields_expectation($expectedq), $q); } @@ -531,12 +529,12 @@ END; $expectedq->questiontext = 'Match the upper and lower case letters.'; $expectedq->questiontextformat = FORMAT_HTML; $expectedq->correctfeedback = array('text' => 'Well done.', - 'format' => FORMAT_HTML, 'files' => array()); + 'format' => FORMAT_HTML); $expectedq->partiallycorrectfeedback = array('text' => 'Not entirely.', - 'format' => FORMAT_HTML, 'files' => array()); + 'format' => FORMAT_HTML); $expectedq->shownumcorrect = false; $expectedq->incorrectfeedback = array('text' => 'Completely wrong!', - 'format' => FORMAT_HTML, 'files' => array()); + 'format' => FORMAT_HTML); $expectedq->generalfeedback = 'The answer is A -> a, B -> b and C -> c.'; $expectedq->generalfeedbackformat = FORMAT_HTML; $expectedq->defaultmark = 1; @@ -544,14 +542,14 @@ END; $expectedq->penalty = 0.3333333; $expectedq->shuffleanswers = 0; $expectedq->subquestions = array( - array('text' => 'A', 'format' => FORMAT_HTML, 'files' => array()), - array('text' => 'B', 'format' => FORMAT_HTML, 'files' => array()), - array('text' => 'C', 'format' => FORMAT_HTML, 'files' => array()), - array('text' => '', 'format' => FORMAT_HTML, 'files' => array())); + array('text' => 'A', 'format' => FORMAT_HTML), + array('text' => 'B', 'format' => FORMAT_HTML), + array('text' => 'C', 'format' => FORMAT_HTML), + array('text' => '', 'format' => FORMAT_HTML)); $expectedq->subanswers = array('a', 'b', 'c', 'd'); $expectedq->hint = array( - array('text' => 'Hint 1', 'format' => FORMAT_HTML, 'files' => array()), - array('text' => '', 'format' => FORMAT_HTML, 'files' => array()), + array('text' => 'Hint 1', 'format' => FORMAT_HTML), + array('text' => '', 'format' => FORMAT_HTML), ); $expectedq->hintshownumcorrect = array(true, true); $expectedq->hintclearwrong = array(false, true); @@ -752,18 +750,15 @@ END; $expectedq->questiontextformat = FORMAT_HTML; $expectedq->correctfeedback = array( 'text' => '

Your answer is correct.

', - 'format' => FORMAT_HTML, - 'files' => array()); + 'format' => FORMAT_HTML); $expectedq->shownumcorrect = false; $expectedq->partiallycorrectfeedback = array( 'text' => '

Your answer is partially correct.

', - 'format' => FORMAT_HTML, - 'files' => array()); + 'format' => FORMAT_HTML); $expectedq->shownumcorrect = true; $expectedq->incorrectfeedback = array( 'text' => '

Your answer is incorrect.

', - 'format' => FORMAT_HTML, - 'files' => array()); + 'format' => FORMAT_HTML); $expectedq->generalfeedback = 'The even numbers are 2 and 4.'; $expectedq->defaultmark = 2; $expectedq->length = 1; @@ -772,20 +767,20 @@ END; $expectedq->single = false; $expectedq->answer = array( - array('text' => '1', 'format' => FORMAT_HTML, 'files' => array()), - array('text' => '2', 'format' => FORMAT_HTML, 'files' => array()), - array('text' => '3', 'format' => FORMAT_HTML, 'files' => array()), - array('text' => '4', 'format' => FORMAT_HTML, 'files' => array())); + array('text' => '1', 'format' => FORMAT_HTML), + array('text' => '2', 'format' => FORMAT_HTML), + array('text' => '3', 'format' => FORMAT_HTML), + array('text' => '4', 'format' => FORMAT_HTML)); $expectedq->fraction = array(0, 1, 0, 1); $expectedq->feedback = array( - array('text' => '', 'format' => FORMAT_HTML, 'files' => array()), - array('text' => '', 'format' => FORMAT_HTML, 'files' => array()), - array('text' => '', 'format' => FORMAT_HTML, 'files' => array()), - array('text' => '', 'format' => FORMAT_HTML, 'files' => array())); + array('text' => '', 'format' => FORMAT_HTML), + array('text' => '', 'format' => FORMAT_HTML), + array('text' => '', 'format' => FORMAT_HTML), + array('text' => '', 'format' => FORMAT_HTML)); $expectedq->hint = array( - array('text' => 'Hint 1.', 'format' => FORMAT_HTML, 'files' => array()), - array('text' => 'Hint 2.', 'format' => FORMAT_HTML, 'files' => array()), + array('text' => 'Hint 1.', 'format' => FORMAT_HTML), + array('text' => 'Hint 2.', 'format' => FORMAT_HTML), ); $expectedq->hintshownumcorrect = array(false, false); $expectedq->hintclearwrong = array(false, false); @@ -954,11 +949,11 @@ END; $expectedq->fraction = array(1, 0, 0); $expectedq->feedback = array( array('text' => 'Well done!', - 'format' => FORMAT_HTML, 'files' => array()), + 'format' => FORMAT_HTML), array('text' => 'What were you thinking?!', - 'format' => FORMAT_HTML, 'files' => array()), + 'format' => FORMAT_HTML), array('text' => 'Completely wrong.', - 'format' => FORMAT_HTML, 'files' => array())); + 'format' => FORMAT_HTML)); $expectedq->tolerance = array(0.001, 1, 0); $this->assert(new question_check_specified_fields_expectation($expectedq), $q); @@ -1090,8 +1085,8 @@ END; $expectedq->answer = array('Beta', '*'); $expectedq->fraction = array(1, 0); $expectedq->feedback = array( - array('text' => 'Well done!', 'format' => FORMAT_HTML, 'files' => array()), - array('text' => 'Doh!', 'format' => FORMAT_HTML, 'files' => array())); + array('text' => 'Well done!', 'format' => FORMAT_HTML), + array('text' => 'Doh!', 'format' => FORMAT_HTML)); $this->assert(new question_check_specified_fields_expectation($expectedq), $q); } @@ -1209,9 +1204,9 @@ END; $expectedq->penalty = 1; $expectedq->feedbacktrue = array('text' => 'Well done!', - 'format' => FORMAT_HTML, 'files' => array()); + 'format' => FORMAT_HTML); $expectedq->feedbackfalse = array('text' => 'Doh!', - 'format' => FORMAT_HTML, 'files' => array()); + 'format' => FORMAT_HTML); $expectedq->correctanswer = true; $this->assert(new question_check_specified_fields_expectation($expectedq), $q); @@ -1313,8 +1308,8 @@ END; $expectedqa->penalty = 0.5; $expectedqa->hint = array( - array('text' => 'Hint 1', 'format' => FORMAT_HTML, 'files' => array()), - array('text' => 'Hint 2', 'format' => FORMAT_HTML, 'files' => array()), + array('text' => 'Hint 1', 'format' => FORMAT_HTML), + array('text' => 'Hint 2', 'format' => FORMAT_HTML), ); $sa = new stdClass(); @@ -1406,4 +1401,30 @@ END; $this->assert_same_xml($expectedxml, $xml); } + + public function test_import_files_as_draft() { + $this->resetAfterTest(); + $this->setAdminUser(); + + $xml = << + This text file contains the word 'Moodle'.

]]>
+ TW9vZGxl + +END; + + $textxml = xmlize($xml); + $qo = new stdClass(); + + $importer = new qformat_xml(); + $draftitemid = $importer->import_files_as_draft($textxml['questiontext']['#']['file']); + $files = file_get_drafarea_files($draftitemid); + + $this->assertEquals(1, count($files->list)); + + $file = $files->list[0]; + $this->assertEquals('moodle.txt', $file->filename); + $this->assertEquals('/', $file->filepath); + $this->assertEquals(6, $file->size); + } }