· 6 years ago · Sep 03, 2019, 04:14 PM
1<!DOCTYPE html><!--
2
3
4UnexpectedValueException: The stream or file "/var/www/dev.api/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied in file /var/www/dev.api/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php on line 107
5Stack trace:
6 1. UnexpectedValueException->() /var/www/dev.api/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107
7 2. Monolog\Handler\StreamHandler->write() /var/www/dev.api/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php:39
8 3. Monolog\Handler\AbstractProcessingHandler->handle() /var/www/dev.api/vendor/monolog/monolog/src/Monolog/Logger.php:344
9 4. Monolog\Logger->addRecord() /var/www/dev.api/vendor/monolog/monolog/src/Monolog/Logger.php:777
10 5. Monolog\Logger->emergency() /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/Logger.php:176
11 6. Illuminate\Log\Logger->writeLog() /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/Logger.php:51
12 7. Illuminate\Log\Logger->emergency() /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:108
13 8. Illuminate\Log\LogManager->Illuminate\Log\{closure}() /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Support/helpers.php:1124
14 9. tap() /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:110
15 10. Illuminate\Log\LogManager->get() /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:90
16 11. Illuminate\Log\LogManager->driver() /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:500
17 12. Illuminate\Log\LogManager->error() /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php:118
18 13. Illuminate\Foundation\Exceptions\Handler->report() /var/www/dev.api/app/Exceptions/Handler.php:44
19 14. App\Exceptions\Handler->report() /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:92
20 15. Illuminate\Foundation\Bootstrap\HandleExceptions->handleException() [internal]:0
21
22
23
24
25
26
27
28
29
30
31
32--><html>
33 <head>
34 <meta charset="utf-8">
35 <meta name="robots" content="noindex,nofollow"/>
36 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
37 <title>Whoops! There was an error.</title>
38
39 <style>body {
40 font: 12px "Helvetica Neue", helvetica, arial, sans-serif;
41 color: #131313;
42 background: #eeeeee;
43 padding:0;
44 margin: 0;
45 max-height: 100%;
46
47 text-rendering: optimizeLegibility;
48}
49 a {
50 text-decoration: none;
51 }
52
53.Whoops.container {
54 position: relative;
55 z-index: 9999999999;
56}
57
58.panel {
59 overflow-y: scroll;
60 height: 100%;
61 position: fixed;
62 margin: 0;
63 left: 0;
64 top: 0;
65}
66
67.branding {
68 position: absolute;
69 top: 10px;
70 right: 20px;
71 color: #777777;
72 font-size: 10px;
73 z-index: 100;
74}
75 .branding a {
76 color: #e95353;
77 }
78
79header {
80 color: white;
81 box-sizing: border-box;
82 background-color: #2a2a2a;
83 padding: 35px 40px;
84 max-height: 180px;
85 overflow: hidden;
86 transition: 0.5s;
87}
88
89 header.header-expand {
90 max-height: 1000px;
91 }
92
93 .exc-title {
94 margin: 0;
95 color: #bebebe;
96 font-size: 14px;
97 }
98 .exc-title-primary, .exc-title-secondary {
99 color: #e95353;
100 }
101
102 .exc-message {
103 font-size: 20px;
104 word-wrap: break-word;
105 margin: 4px 0 0 0;
106 color: white;
107 }
108 .exc-message span {
109 display: block;
110 }
111 .exc-message-empty-notice {
112 color: #a29d9d;
113 font-weight: 300;
114 }
115
116.prev-exc-title {
117 margin: 10px 0;
118}
119
120.prev-exc-title + ul {
121 margin: 0;
122 padding: 0 0 0 20px;
123 line-height: 12px;
124}
125
126.prev-exc-title + ul li {
127 font: 12px "Helvetica Neue", helvetica, arial, sans-serif;
128}
129
130.prev-exc-title + ul li .prev-exc-code {
131 display: inline-block;
132 color: #bebebe;
133}
134
135.details-container {
136 left: 30%;
137 width: 70%;
138 background: #fafafa;
139}
140 .details {
141 padding: 5px;
142 }
143
144 .details-heading {
145 color: #4288CE;
146 font-weight: 300;
147 padding-bottom: 10px;
148 margin-bottom: 10px;
149 border-bottom: 1px solid rgba(0, 0, 0, .1);
150 }
151
152 .details pre.sf-dump {
153 white-space: pre;
154 word-wrap: inherit;
155 }
156
157 .details pre.sf-dump,
158 .details pre.sf-dump .sf-dump-num,
159 .details pre.sf-dump .sf-dump-const,
160 .details pre.sf-dump .sf-dump-str,
161 .details pre.sf-dump .sf-dump-note,
162 .details pre.sf-dump .sf-dump-ref,
163 .details pre.sf-dump .sf-dump-public,
164 .details pre.sf-dump .sf-dump-protected,
165 .details pre.sf-dump .sf-dump-private,
166 .details pre.sf-dump .sf-dump-meta,
167 .details pre.sf-dump .sf-dump-key,
168 .details pre.sf-dump .sf-dump-index {
169 color: #463C54;
170 }
171
172.left-panel {
173 width: 30%;
174 background: #ded8d8;
175}
176
177 .frames-description {
178 background: rgba(0, 0, 0, .05);
179 padding: 8px 15px;
180 color: #a29d9d;
181 font-size: 11px;
182 }
183
184 .frames-description.frames-description-application {
185 text-align: center;
186 font-size: 12px;
187 }
188 .frames-container.frames-container-application .frame:not(.frame-application) {
189 display: none;
190 }
191
192 .frames-tab {
193 color: #a29d9d;
194 display: inline-block;
195 padding: 4px 8px;
196 margin: 0 2px;
197 border-radius: 3px;
198 }
199
200 .frames-tab.frames-tab-active {
201 background-color: #2a2a2a;
202 color: #bebebe;
203 }
204
205 .frame {
206 padding: 14px;
207 cursor: pointer;
208 transition: all 0.1s ease;
209 background: #eeeeee;
210 }
211 .frame:not(:last-child) {
212 border-bottom: 1px solid rgba(0, 0, 0, .05);
213 }
214
215 .frame.active {
216 box-shadow: inset -5px 0 0 0 #4288CE;
217 color: #4288CE;
218 }
219
220 .frame:not(.active):hover {
221 background: #BEE9EA;
222 }
223
224 .frame-method-info {
225 margin-bottom: 10px;
226 }
227
228 .frame-class, .frame-function, .frame-index {
229 font-size: 14px;
230 }
231
232 .frame-index {
233 float: left;
234 }
235
236 .frame-method-info {
237 margin-left: 24px;
238 }
239
240 .frame-index {
241 font-size: 11px;
242 color: #a29d9d;
243 background-color: rgba(0, 0, 0, .05);
244 height: 18px;
245 width: 18px;
246 line-height: 18px;
247 border-radius: 5px;
248 padding: 0 1px 0 1px;
249 text-align: center;
250 display: inline-block;
251 }
252
253 .frame-application .frame-index {
254 background-color: #2a2a2a;
255 color: #bebebe;
256 }
257
258 .frame-file {
259 font-family: "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace;
260 color: #a29d9d;
261 }
262
263 .frame-file .editor-link {
264 color: #a29d9d;
265 }
266
267 .frame-line {
268 font-weight: bold;
269 }
270
271 .frame-line:before {
272 content: ":";
273 }
274
275 .frame-code {
276 padding: 5px;
277 background: #303030;
278 display: none;
279 }
280
281 .frame-code.active {
282 display: block;
283 }
284
285 .frame-code .frame-file {
286 color: #a29d9d;
287 padding: 12px 6px;
288
289 border-bottom: none;
290 }
291
292 .code-block {
293 padding: 10px;
294 margin: 0;
295 border-radius: 6px;
296 box-shadow: 0 3px 0 rgba(0, 0, 0, .05),
297 0 10px 30px rgba(0, 0, 0, .05),
298 inset 0 0 1px 0 rgba(255, 255, 255, .07);
299 -moz-tab-size: 4;
300 -o-tab-size: 4;
301 tab-size: 4;
302 }
303
304 .linenums {
305 margin: 0;
306 margin-left: 10px;
307 }
308
309 .frame-comments {
310 border-top: none;
311 margin-top: 15px;
312
313 font-size: 12px;
314 }
315
316 .frame-comments.empty {
317 }
318
319 .frame-comments.empty:before {
320 content: "No comments for this stack frame.";
321 font-weight: 300;
322 color: #a29d9d;
323 }
324
325 .frame-comment {
326 padding: 10px;
327 color: #e3e3e3;
328 border-radius: 6px;
329 background-color: rgba(255, 255, 255, .05);
330 }
331 .frame-comment a {
332 font-weight: bold;
333 text-decoration: none;
334 }
335 .frame-comment a:hover {
336 color: #4bb1b1;
337 }
338
339 .frame-comment:not(:last-child) {
340 border-bottom: 1px dotted rgba(0, 0, 0, .3);
341 }
342
343 .frame-comment-context {
344 font-size: 10px;
345 color: white;
346 }
347
348.delimiter {
349 display: inline-block;
350}
351
352.data-table-container label {
353 font-size: 16px;
354 color: #303030;
355 font-weight: bold;
356 margin: 10px 0;
357
358 display: block;
359
360 margin-bottom: 5px;
361 padding-bottom: 5px;
362}
363 .data-table {
364 width: 100%;
365 margin-bottom: 10px;
366 }
367
368 .data-table tbody {
369 font: 13px "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace;
370 }
371
372 .data-table thead {
373 display: none;
374 }
375
376 .data-table tr {
377 padding: 5px 0;
378 }
379
380 .data-table td:first-child {
381 width: 20%;
382 min-width: 130px;
383 overflow: hidden;
384 font-weight: bold;
385 color: #463C54;
386 padding-right: 5px;
387
388 }
389
390 .data-table td:last-child {
391 width: 80%;
392 -ms-word-break: break-all;
393 word-break: break-all;
394 word-break: break-word;
395 -webkit-hyphens: auto;
396 -moz-hyphens: auto;
397 hyphens: auto;
398 }
399
400 .data-table span.empty {
401 color: rgba(0, 0, 0, .3);
402 font-weight: 300;
403 }
404 .data-table label.empty {
405 display: inline;
406 }
407
408.handler {
409 padding: 4px 0;
410 font: 14px "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace;
411}
412
413/* prettify code style
414Uses the Doxy theme as a base */
415pre .str, code .str { color: #BCD42A; } /* string */
416pre .kwd, code .kwd { color: #4bb1b1; font-weight: bold; } /* keyword*/
417pre .com, code .com { color: #888; font-weight: bold; } /* comment */
418pre .typ, code .typ { color: #ef7c61; } /* type */
419pre .lit, code .lit { color: #BCD42A; } /* literal */
420pre .pun, code .pun { color: #fff; font-weight: bold; } /* punctuation */
421pre .pln, code .pln { color: #e9e4e5; } /* plaintext */
422pre .tag, code .tag { color: #4bb1b1; } /* html/xml tag */
423pre .htm, code .htm { color: #dda0dd; } /* html tag */
424pre .xsl, code .xsl { color: #d0a0d0; } /* xslt tag */
425pre .atn, code .atn { color: #ef7c61; font-weight: normal;} /* html/xml attribute name */
426pre .atv, code .atv { color: #bcd42a; } /* html/xml attribute value */
427pre .dec, code .dec { color: #606; } /* decimal */
428pre.code-block, code.code-block, .frame-args.code-block, .frame-args.code-block samp {
429 font-family: "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace;
430 background: #333;
431 color: #e9e4e5;
432}
433 pre.code-block {
434 white-space: pre-wrap;
435 }
436
437 pre.code-block a, code.code-block a {
438 text-decoration:none;
439 }
440
441 .linenums li {
442 color: #A5A5A5;
443 }
444
445 .linenums li.current{
446 background: rgba(255, 100, 100, .07);
447 }
448 .linenums li.current.active {
449 background: rgba(255, 100, 100, .17);
450 }
451
452pre:not(.prettyprinted) {
453 padding-left: 60px;
454}
455
456#plain-exception {
457 display: none;
458}
459
460.rightButton {
461 cursor: pointer;
462 border: 0;
463 opacity: .8;
464 background: none;
465
466 color: rgba(255, 255, 255, 0.1);
467 box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.1);
468
469 border-radius: 3px;
470
471 outline: none !important;
472}
473
474 .rightButton:hover {
475 box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.3);
476 color: rgba(255, 255, 255, 0.3);
477 }
478
479/* inspired by githubs kbd styles */
480kbd {
481 -moz-border-bottom-colors: none;
482 -moz-border-left-colors: none;
483 -moz-border-right-colors: none;
484 -moz-border-top-colors: none;
485 background-color: #fcfcfc;
486 border-color: #ccc #ccc #bbb;
487 border-image: none;
488 border-style: solid;
489 border-width: 1px;
490 color: #555;
491 display: inline-block;
492 font-size: 11px;
493 line-height: 10px;
494 padding: 3px 5px;
495 vertical-align: middle;
496}
497
498
499/* == Media queries */
500
501/* Expand the spacing in the details section */
502@media (min-width: 1000px) {
503 .details, .frame-code {
504 padding: 20px 40px;
505 }
506
507 .details-container {
508 left: 32%;
509 width: 68%;
510 }
511
512 .frames-container {
513 margin: 5px;
514 }
515
516 .left-panel {
517 width: 32%;
518 }
519}
520
521/* Stack panels */
522@media (max-width: 600px) {
523 .panel {
524 position: static;
525 width: 100%;
526 }
527}
528
529/* Stack details tables */
530@media (max-width: 400px) {
531 .data-table,
532 .data-table tbody,
533 .data-table tbody tr,
534 .data-table tbody td {
535 display: block;
536 width: 100%;
537 }
538
539 .data-table tbody tr:first-child {
540 padding-top: 0;
541 }
542
543 .data-table tbody td:first-child,
544 .data-table tbody td:last-child {
545 padding-left: 0;
546 padding-right: 0;
547 }
548
549 .data-table tbody td:last-child {
550 padding-top: 3px;
551 }
552}
553
554.tooltipped {
555 position: relative
556}
557.tooltipped:after {
558 position: absolute;
559 z-index: 1000000;
560 display: none;
561 padding: 5px 8px;
562 color: #fff;
563 text-align: center;
564 text-decoration: none;
565 text-shadow: none;
566 text-transform: none;
567 letter-spacing: normal;
568 word-wrap: break-word;
569 white-space: pre;
570 pointer-events: none;
571 content: attr(aria-label);
572 background: rgba(0, 0, 0, 0.8);
573 border-radius: 3px;
574 -webkit-font-smoothing: subpixel-antialiased
575}
576.tooltipped:before {
577 position: absolute;
578 z-index: 1000001;
579 display: none;
580 width: 0;
581 height: 0;
582 color: rgba(0, 0, 0, 0.8);
583 pointer-events: none;
584 content: "";
585 border: 5px solid transparent
586}
587.tooltipped:hover:before,
588.tooltipped:hover:after,
589.tooltipped:active:before,
590.tooltipped:active:after,
591.tooltipped:focus:before,
592.tooltipped:focus:after {
593 display: inline-block;
594 text-decoration: none
595}
596.tooltipped-s:after {
597 top: 100%;
598 right: 50%;
599 margin-top: 5px
600}
601.tooltipped-s:before {
602 top: auto;
603 right: 50%;
604 bottom: -5px;
605 margin-right: -5px;
606 border-bottom-color: rgba(0, 0, 0, 0.8)
607}
608
609pre.sf-dump {
610 padding: 0px !important;
611 margin: 0px !important;
612}
613
614.search-for-help {
615 width: 85%;
616 padding: 0;
617 margin: 10px 0;
618 list-style-type: none;
619 display: inline-block;
620}
621 .search-for-help li {
622 display: inline-block;
623 margin-right: 5px;
624 }
625 .search-for-help li:last-child {
626 margin-right: 0;
627 }
628 .search-for-help li a {
629
630 }
631 .search-for-help li a i {
632 width: 16px;
633 height: 16px;
634 overflow: hidden;
635 display: block;
636 }
637 .search-for-help li a svg {
638 fill: #fff;
639 }
640 .search-for-help li a svg path {
641 background-size: contain;
642 }
643</style>
644 </head>
645 <body>
646
647 <div class="Whoops container">
648 <div class="stack-container">
649
650 <div class="panel left-panel cf ">
651 <header>
652 <div class="exception">
653 <div class="exc-title">
654 <span class="exc-title-primary">UnexpectedValueException</span>
655 </div>
656
657 <div class="exc-message">
658 <span>The stream or file "/var/www/dev.api/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied</span>
659
660
661
662
663
664
665 <ul class="search-for-help">
666 <li>
667 <a rel="noopener noreferrer" target="_blank" href="https://google.com/search?q=UnexpectedValueException+The+stream+or+file+%22%2Fvar%2Fwww%2Fdev.api%2Fstorage%2Flogs%2Flaravel.log%22+could+not+be+opened%3A+failed+to+open+stream%3A+Permission+denied" title="Search for help on Google.">
668 <!-- Google icon by Alfredo H, from https://www.iconfinder.com/alfredoh -->
669 <!-- Creative Commons (Attribution 3.0 Unported) -->
670 <!-- http://creativecommons.org/licenses/by/3.0/ -->
671 <svg class="google" height="16" viewBox="0 0 512 512" width="16" xmlns="http://www.w3.org/2000/svg">
672 <path d="M457.732 216.625c2.628 14.04 4.063 28.743 4.063 44.098C461.795 380.688 381.48 466 260.205 466c-116.024 0-210-93.977-210-210s93.976-210 210-210c56.703 0 104.076 20.867 140.44 54.73l-59.205 59.197v-.135c-22.046-21.002-50-31.762-81.236-31.762-69.297 0-125.604 58.537-125.604 127.84 0 69.29 56.306 127.97 125.604 127.97 62.87 0 105.653-35.966 114.46-85.313h-114.46v-81.902h197.528z"/>
673 </svg>
674 </a>
675 </li>
676 <li>
677 <a rel="noopener noreferrer" target="_blank" href="https://duckduckgo.com/?q=UnexpectedValueException+The+stream+or+file+%22%2Fvar%2Fwww%2Fdev.api%2Fstorage%2Flogs%2Flaravel.log%22+could+not+be+opened%3A+failed+to+open+stream%3A+Permission+denied" title="Search for help on DuckDuckGo.">
678 <!-- DuckDuckGo icon by IconBaandar Team, from https://www.iconfinder.com/iconbaandar -->
679 <!-- Creative Commons (Attribution 3.0 Unported) -->
680 <!-- http://creativecommons.org/licenses/by/3.0/ -->
681 <svg class="duckduckgo" height="16" viewBox="150 150 1675 1675" width="16" xmlns="http://www.w3.org/2000/svg">
682 <path d="M1792 1024c0 204.364-80.472 398.56-224.955 543.04-144.483 144.48-338.68 224.95-543.044 224.95-204.36 0-398.56-80.47-543.04-224.95-144.48-144.482-224.95-338.676-224.95-543.04 0-204.365 80.47-398.562 224.96-543.045C625.44 336.47 819.64 256 1024 256c204.367 0 398.565 80.47 543.05 224.954C1711.532 625.437 1792 819.634 1792 1024zm-270.206 497.787C1654.256 1389.327 1728 1211.36 1728 1024c0-187.363-73.74-365.332-206.203-497.796C1389.332 393.74 1211.363 320 1024 320s-365.33 73.742-497.795 206.205C393.742 658.67 320 836.637 320 1024c0 187.36 73.744 365.326 206.206 497.787C658.67 1654.25 836.638 1727.99 1024 1727.99c187.362 0 365.33-73.74 497.794-206.203z"/>
683 <path d="M1438.64 1177.41c0-.03-.005-.017-.01.004l.01-.004z"/>
684 <path d="M1499.8 976.878c.03-.156-.024-.048-.11.107l.11-.107z"/>
685 <path d="M1105.19 991.642zm-68.013-376.128c-8.087-10.14-18.028-19.965-29.89-29.408-13.29-10.582-29-20.76-47.223-30.443-35.07-18.624-74.482-31.61-115.265-38.046-39.78-6.28-80.84-6.256-120.39.917l1.37 31.562c1.8.164 7.7 3.9 14.36 8.32-20.68 5.94-39.77 14.447-39.48 39.683l.2 17.48 17.3-1.73c29.38-2.95 60.17-2.06 90.32 2.61 9.21 1.42 18.36 3.2 27.38 5.32l-4.33 1.15c-20.45 5.58-38.93 12.52-54.25 20.61-46.28 24.32-75.51 60.85-90.14 108.37-14.14 45.95-14.27 101.81-2.72 166.51l.06.06c15.14 84.57 64.16 316.39 104.11 505.39 19.78 93.59 37.38 176.83 47.14 224.4 3.26 15.84 5.03 31.02 5.52 45.52.3 9.08.09 17.96-.58 26.62-.45 5.8-1.11 11.51-1.96 17.112l31.62 4.75c.71-4.705 1.3-9.494 1.76-14.373 48.964 10.517 99.78 16.05 151.88 16.05 60.68 0 119.61-7.505 175.91-21.64 3.04 6.08 6.08 12.19 9.11 18.32l28.62-14.128c-2.11-4.27-4.235-8.55-6.37-12.84-23.005-46.124-47.498-93.01-68.67-133.534-15.39-29.466-29.01-55.53-39.046-75.58-26.826-53.618-53.637-119.47-68.28-182.368-8.78-37.705-13.128-74.098-10.308-105.627-15.31-6.28-26.69-11.8-31.968-15.59l-.01.015c-14.22-10.2-31.11-28.12-41.82-49.717-8.618-17.376-13.4-37.246-10.147-57.84 3.17-19.84 27.334-46.714 57.843-67.46v-.063c26.554-18.05 58.75-32.506 86.32-34.31 7.835-.51 16.31-1.008 23.99-1.45 33.45-1.95 50.243-2.93 84.475-11.42 10.88-2.697 26.19-6.56 43.53-11.09 2.364-40.7-5.947-87.596-21.04-133.234-22.004-66.53-58.68-131.25-97.627-170.21-12.543-12.55-28.17-22.79-45.9-30.933-16.88-7.753-35.64-13.615-55.436-17.782zm-10.658 178.553s6.77-42.485 58.39-33.977c27.96 4.654 37.89 29.833 37.89 29.833s-25.31-14.46-44.95-14.198c-40.33.53-51.35 18.342-51.35 18.342zm-240.45-18.802c48.49-19.853 72.11 11.298 72.11 11.298s-35.21-15.928-69.46 5.59c-34.19 21.477-32.92 43.452-32.92 43.452s-18.17-40.5 30.26-60.34zm296.5 95.4c0-6.677 2.68-12.694 7.01-17.02 4.37-4.37 10.42-7.074 17.1-7.074 6.73 0 12.79 2.7 17.15 7.05 4.33 4.33 7.01 10.36 7.01 17.05 0 6.74-2.7 12.81-7.07 17.18-4.33 4.33-10.37 7.01-17.1 7.01-6.68 0-12.72-2.69-17.05-7.03-4.36-4.37-7.07-10.43-7.07-17.16zm-268.42 51.27c0-8.535 3.41-16.22 8.93-21.738 5.55-5.55 13.25-8.982 21.81-8.982 8.51 0 16.18 3.415 21.7 8.934 5.55 5.55 8.98 13.25 8.98 21.78 0 8.53-3.44 16.23-8.98 21.79-5.52 5.52-13.19 8.93-21.71 8.93-8.55 0-16.26-3.43-21.82-8.99-5.52-5.52-8.93-13.2-8.93-21.74z"/>
686 <path d="M1102.48 986.34zm390.074-64.347c-28.917-11.34-74.89-12.68-93.32-3.778-11.5 5.567-35.743 13.483-63.565 21.707-25.75 7.606-53.9 15.296-78.15 21.702-17.69 4.67-33.3 8.66-44.4 11.435-34.92 8.76-52.05 9.77-86.17 11.78-7.84.46-16.48.97-24.48 1.5-28.12 1.86-60.97 16.77-88.05 35.4v.06c-31.12 21.4-55.77 49.12-59.01 69.59-3.32 21.24 1.56 41.74 10.35 59.67 10.92 22.28 28.15 40.77 42.66 51.29l.01-.02c5.38 3.9 16.98 9.6 32.6 16.08 26.03 10.79 63.2 23.76 101.25 34.23 43.6 11.99 89.11 21.05 121.69 20.41 34.26-.69 77.73-10.52 114.54-24.67 22.15-8.52 42.21-18.71 56.88-29.58 17.85-13.22 28.7-28.42 28.4-44.74-.07-3.89-.72-7.63-1.97-11.21l-.02.01c-11.6-33.06-50.37-23.59-105.53-10.12-46.86 11.445-107.94 26.365-169.01 20.434-32.56-3.167-54.45-10.61-67.88-20.133-5.96-4.224-9.93-8.67-12.18-13.11-1.96-3.865-2.68-7.84-2.33-11.714.39-4.42 2.17-9.048 5.1-13.57l-.05-.03c7.86-12.118 23.082-9.72 43.93-6.43 25.91 4.08 58.2 9.172 99.013-3.61 39.63-12.378 87.76-29.9 131.184-47.39 42.405-17.08 80.08-34.078 100.74-46.18 25.46-14.87 37.57-29.428 40.59-42.866 2.725-12.152-.89-22.48-8.903-31.07-5.87-6.29-14.254-11.31-23.956-15.115z"/>
687 </svg>
688 </a>
689 </li>
690 <li>
691 <a rel="noopener noreferrer" target="_blank" href="https://stackoverflow.com/search?q=UnexpectedValueException+The+stream+or+file+%22%2Fvar%2Fwww%2Fdev.api%2Fstorage%2Flogs%2Flaravel.log%22+could+not+be+opened%3A+failed+to+open+stream%3A+Permission+denied" title="Search for help on Stack Overflow.">
692 <!-- Stack Overflow icon by Picons.me, from https://www.iconfinder.com/Picons -->
693 <!-- Free for commercial use -->
694 <svg class="stackoverflow" height="16" viewBox="-1163 1657.697 56.693 56.693" width="16" xmlns="http://www.w3.org/2000/svg">
695 <path d="M-1126.04 1689.533l-16.577-9.778 2.088-3.54 16.578 9.778zM-1127.386 1694.635l-18.586-4.996 1.068-3.97 18.586 4.995zM-1127.824 1700.137l-19.165-1.767.378-4.093 19.165 1.767zM-1147.263 1701.293h19.247v4.11h-19.247z"/>
696 <path d="M-1121.458 1710.947s0 .96-.032.96v.016h-30.796s-.96 0-.96-.016h-.032v-20.03h3.288v16.805h25.244v-16.804h3.288v19.07zM-1130.667 1667.04l10.844 15.903-3.396 2.316-10.843-15.903zM-1118.313 1663.044l3.29 18.963-4.05.703-3.29-18.963z"/>
697 </svg>
698 </a>
699 </li>
700 </ul>
701
702 <span id="plain-exception">UnexpectedValueException thrown with message "The stream or file "/var/www/dev.api/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied"
703
704Stacktrace:
705#14 UnexpectedValueException in /var/www/dev.api/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107
706#13 Monolog\Handler\StreamHandler:write in /var/www/dev.api/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php:39
707#12 Monolog\Handler\AbstractProcessingHandler:handle in /var/www/dev.api/vendor/monolog/monolog/src/Monolog/Logger.php:344
708#11 Monolog\Logger:addRecord in /var/www/dev.api/vendor/monolog/monolog/src/Monolog/Logger.php:777
709#10 Monolog\Logger:emergency in /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/Logger.php:176
710#9 Illuminate\Log\Logger:writeLog in /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/Logger.php:51
711#8 Illuminate\Log\Logger:emergency in /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:108
712#7 Illuminate\Log\LogManager:Illuminate\Log\{closure} in /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Support/helpers.php:1124
713#6 tap in /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:110
714#5 Illuminate\Log\LogManager:get in /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:90
715#4 Illuminate\Log\LogManager:driver in /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:500
716#3 Illuminate\Log\LogManager:error in /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php:118
717#2 Illuminate\Foundation\Exceptions\Handler:report in /var/www/dev.api/app/Exceptions/Handler.php:44
718#1 App\Exceptions\Handler:report in /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:92
719#0 Illuminate\Foundation\Bootstrap\HandleExceptions:handleException in [internal]:0
720</span>
721 <button id="copy-button" class="rightButton clipboard" data-clipboard-text="UnexpectedValueException thrown with message "The stream or file "/var/www/dev.api/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied"
722
723Stacktrace:
724#14 UnexpectedValueException in /var/www/dev.api/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107
725#13 Monolog\Handler\StreamHandler:write in /var/www/dev.api/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php:39
726#12 Monolog\Handler\AbstractProcessingHandler:handle in /var/www/dev.api/vendor/monolog/monolog/src/Monolog/Logger.php:344
727#11 Monolog\Logger:addRecord in /var/www/dev.api/vendor/monolog/monolog/src/Monolog/Logger.php:777
728#10 Monolog\Logger:emergency in /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/Logger.php:176
729#9 Illuminate\Log\Logger:writeLog in /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/Logger.php:51
730#8 Illuminate\Log\Logger:emergency in /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:108
731#7 Illuminate\Log\LogManager:Illuminate\Log\{closure} in /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Support/helpers.php:1124
732#6 tap in /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:110
733#5 Illuminate\Log\LogManager:get in /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:90
734#4 Illuminate\Log\LogManager:driver in /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:500
735#3 Illuminate\Log\LogManager:error in /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php:118
736#2 Illuminate\Foundation\Exceptions\Handler:report in /var/www/dev.api/app/Exceptions/Handler.php:44
737#1 App\Exceptions\Handler:report in /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:92
738#0 Illuminate\Foundation\Bootstrap\HandleExceptions:handleException in [internal]:0
739" title="Copy exception details to clipboard">
740 COPY
741 </button>
742 <button id="hide-error" class="rightButton" title="Hide error message" onclick="document.getElementsByClassName('Whoops')[0].style.display = 'none';">
743 HIDE
744 </button>
745 </div>
746</div>
747</header>
748<div class="frames-description frames-description-application">
749 <a href="#" id="application-frames-tab" class="frames-tab ">
750 Application frames (1)
751 </a>
752 <a href="#" id="all-frames-tab" class="frames-tab frames-tab-active">
753 All frames (15)
754 </a>
755 </div>
756<div class="frames-container ">
757 <div class="frame active " id="frame-line-0">
758 <span class="frame-index">14</span>
759 <div class="frame-method-info">
760 <span class="frame-class"><span class="delimiter">UnexpectedValueException</span></span>
761 <span class="frame-function"><span class="delimiter"></span></span>
762 </div>
763
764 <div class="frame-file">
765 <span class="delimiter">…</span>/<span class="delimiter">vendor</span>/<span class="delimiter">monolog</span>/<span class="delimiter">monolog</span>/<span class="delimiter">src</span>/<span class="delimiter">Monolog</span>/<span class="delimiter">Handler</span>/<span class="delimiter">StreamHandler.php</span><!--
766 --><span class="frame-line">107</span>
767 </div>
768 </div>
769 <div class="frame " id="frame-line-1">
770 <span class="frame-index">13</span>
771 <div class="frame-method-info">
772 <span class="frame-class"><span class="delimiter">Monolog</span>\<span class="delimiter">Handler</span>\<span class="delimiter">StreamHandler</span></span>
773 <span class="frame-function"><span class="delimiter">write</span></span>
774 </div>
775
776 <div class="frame-file">
777 <span class="delimiter">…</span>/<span class="delimiter">vendor</span>/<span class="delimiter">monolog</span>/<span class="delimiter">monolog</span>/<span class="delimiter">src</span>/<span class="delimiter">Monolog</span>/<span class="delimiter">Handler</span>/<span class="delimiter">AbstractProcessingHandler.php</span><!--
778 --><span class="frame-line">39</span>
779 </div>
780 </div>
781 <div class="frame " id="frame-line-2">
782 <span class="frame-index">12</span>
783 <div class="frame-method-info">
784 <span class="frame-class"><span class="delimiter">Monolog</span>\<span class="delimiter">Handler</span>\<span class="delimiter">AbstractProcessingHandler</span></span>
785 <span class="frame-function"><span class="delimiter">handle</span></span>
786 </div>
787
788 <div class="frame-file">
789 <span class="delimiter">…</span>/<span class="delimiter">vendor</span>/<span class="delimiter">monolog</span>/<span class="delimiter">monolog</span>/<span class="delimiter">src</span>/<span class="delimiter">Monolog</span>/<span class="delimiter">Logger.php</span><!--
790 --><span class="frame-line">344</span>
791 </div>
792 </div>
793 <div class="frame " id="frame-line-3">
794 <span class="frame-index">11</span>
795 <div class="frame-method-info">
796 <span class="frame-class"><span class="delimiter">Monolog</span>\<span class="delimiter">Logger</span></span>
797 <span class="frame-function"><span class="delimiter">addRecord</span></span>
798 </div>
799
800 <div class="frame-file">
801 <span class="delimiter">…</span>/<span class="delimiter">vendor</span>/<span class="delimiter">monolog</span>/<span class="delimiter">monolog</span>/<span class="delimiter">src</span>/<span class="delimiter">Monolog</span>/<span class="delimiter">Logger.php</span><!--
802 --><span class="frame-line">777</span>
803 </div>
804 </div>
805 <div class="frame " id="frame-line-4">
806 <span class="frame-index">10</span>
807 <div class="frame-method-info">
808 <span class="frame-class"><span class="delimiter">Monolog</span>\<span class="delimiter">Logger</span></span>
809 <span class="frame-function"><span class="delimiter">emergency</span></span>
810 </div>
811
812 <div class="frame-file">
813 <span class="delimiter">…</span>/<span class="delimiter">vendor</span>/<span class="delimiter">laravel</span>/<span class="delimiter">framework</span>/<span class="delimiter">src</span>/<span class="delimiter">Illuminate</span>/<span class="delimiter">Log</span>/<span class="delimiter">Logger.php</span><!--
814 --><span class="frame-line">176</span>
815 </div>
816 </div>
817 <div class="frame " id="frame-line-5">
818 <span class="frame-index">9</span>
819 <div class="frame-method-info">
820 <span class="frame-class"><span class="delimiter">Illuminate</span>\<span class="delimiter">Log</span>\<span class="delimiter">Logger</span></span>
821 <span class="frame-function"><span class="delimiter">writeLog</span></span>
822 </div>
823
824 <div class="frame-file">
825 <span class="delimiter">…</span>/<span class="delimiter">vendor</span>/<span class="delimiter">laravel</span>/<span class="delimiter">framework</span>/<span class="delimiter">src</span>/<span class="delimiter">Illuminate</span>/<span class="delimiter">Log</span>/<span class="delimiter">Logger.php</span><!--
826 --><span class="frame-line">51</span>
827 </div>
828 </div>
829 <div class="frame " id="frame-line-6">
830 <span class="frame-index">8</span>
831 <div class="frame-method-info">
832 <span class="frame-class"><span class="delimiter">Illuminate</span>\<span class="delimiter">Log</span>\<span class="delimiter">Logger</span></span>
833 <span class="frame-function"><span class="delimiter">emergency</span></span>
834 </div>
835
836 <div class="frame-file">
837 <span class="delimiter">…</span>/<span class="delimiter">vendor</span>/<span class="delimiter">laravel</span>/<span class="delimiter">framework</span>/<span class="delimiter">src</span>/<span class="delimiter">Illuminate</span>/<span class="delimiter">Log</span>/<span class="delimiter">LogManager.php</span><!--
838 --><span class="frame-line">108</span>
839 </div>
840 </div>
841 <div class="frame " id="frame-line-7">
842 <span class="frame-index">7</span>
843 <div class="frame-method-info">
844 <span class="frame-class"><span class="delimiter">Illuminate</span>\<span class="delimiter">Log</span>\<span class="delimiter">LogManager</span></span>
845 <span class="frame-function"><span class="delimiter">Illuminate</span>\<span class="delimiter">Log</span>\<span class="delimiter">{closure}</span></span>
846 </div>
847
848 <div class="frame-file">
849 <span class="delimiter">…</span>/<span class="delimiter">vendor</span>/<span class="delimiter">laravel</span>/<span class="delimiter">framework</span>/<span class="delimiter">src</span>/<span class="delimiter">Illuminate</span>/<span class="delimiter">Support</span>/<span class="delimiter">helpers.php</span><!--
850 --><span class="frame-line">1124</span>
851 </div>
852 </div>
853 <div class="frame " id="frame-line-8">
854 <span class="frame-index">6</span>
855 <div class="frame-method-info">
856 <span class="frame-class"><span class="delimiter"></span></span>
857 <span class="frame-function"><span class="delimiter">tap</span></span>
858 </div>
859
860 <div class="frame-file">
861 <span class="delimiter">…</span>/<span class="delimiter">vendor</span>/<span class="delimiter">laravel</span>/<span class="delimiter">framework</span>/<span class="delimiter">src</span>/<span class="delimiter">Illuminate</span>/<span class="delimiter">Log</span>/<span class="delimiter">LogManager.php</span><!--
862 --><span class="frame-line">110</span>
863 </div>
864 </div>
865 <div class="frame " id="frame-line-9">
866 <span class="frame-index">5</span>
867 <div class="frame-method-info">
868 <span class="frame-class"><span class="delimiter">Illuminate</span>\<span class="delimiter">Log</span>\<span class="delimiter">LogManager</span></span>
869 <span class="frame-function"><span class="delimiter">get</span></span>
870 </div>
871
872 <div class="frame-file">
873 <span class="delimiter">…</span>/<span class="delimiter">vendor</span>/<span class="delimiter">laravel</span>/<span class="delimiter">framework</span>/<span class="delimiter">src</span>/<span class="delimiter">Illuminate</span>/<span class="delimiter">Log</span>/<span class="delimiter">LogManager.php</span><!--
874 --><span class="frame-line">90</span>
875 </div>
876 </div>
877 <div class="frame " id="frame-line-10">
878 <span class="frame-index">4</span>
879 <div class="frame-method-info">
880 <span class="frame-class"><span class="delimiter">Illuminate</span>\<span class="delimiter">Log</span>\<span class="delimiter">LogManager</span></span>
881 <span class="frame-function"><span class="delimiter">driver</span></span>
882 </div>
883
884 <div class="frame-file">
885 <span class="delimiter">…</span>/<span class="delimiter">vendor</span>/<span class="delimiter">laravel</span>/<span class="delimiter">framework</span>/<span class="delimiter">src</span>/<span class="delimiter">Illuminate</span>/<span class="delimiter">Log</span>/<span class="delimiter">LogManager.php</span><!--
886 --><span class="frame-line">500</span>
887 </div>
888 </div>
889 <div class="frame " id="frame-line-11">
890 <span class="frame-index">3</span>
891 <div class="frame-method-info">
892 <span class="frame-class"><span class="delimiter">Illuminate</span>\<span class="delimiter">Log</span>\<span class="delimiter">LogManager</span></span>
893 <span class="frame-function"><span class="delimiter">error</span></span>
894 </div>
895
896 <div class="frame-file">
897 <span class="delimiter">…</span>/<span class="delimiter">vendor</span>/<span class="delimiter">laravel</span>/<span class="delimiter">framework</span>/<span class="delimiter">src</span>/<span class="delimiter">Illuminate</span>/<span class="delimiter">Foundation</span>/<span class="delimiter">Exceptions</span>/<span class="delimiter">Handler.php</span><!--
898 --><span class="frame-line">118</span>
899 </div>
900 </div>
901 <div class="frame frame-application" id="frame-line-12">
902 <span class="frame-index">2</span>
903 <div class="frame-method-info">
904 <span class="frame-class"><span class="delimiter">Illuminate</span>\<span class="delimiter">Foundation</span>\<span class="delimiter">Exceptions</span>\<span class="delimiter">Handler</span></span>
905 <span class="frame-function"><span class="delimiter">report</span></span>
906 </div>
907
908 <div class="frame-file">
909 <span class="delimiter">…</span>/<span class="delimiter">app</span>/<span class="delimiter">Exceptions</span>/<span class="delimiter">Handler.php</span><!--
910 --><span class="frame-line">44</span>
911 </div>
912 </div>
913 <div class="frame " id="frame-line-13">
914 <span class="frame-index">1</span>
915 <div class="frame-method-info">
916 <span class="frame-class"><span class="delimiter">App</span>\<span class="delimiter">Exceptions</span>\<span class="delimiter">Handler</span></span>
917 <span class="frame-function"><span class="delimiter">report</span></span>
918 </div>
919
920 <div class="frame-file">
921 <span class="delimiter">…</span>/<span class="delimiter">vendor</span>/<span class="delimiter">laravel</span>/<span class="delimiter">framework</span>/<span class="delimiter">src</span>/<span class="delimiter">Illuminate</span>/<span class="delimiter">Foundation</span>/<span class="delimiter">Bootstrap</span>/<span class="delimiter">HandleExceptions.php</span><!--
922 --><span class="frame-line">92</span>
923 </div>
924 </div>
925 <div class="frame " id="frame-line-14">
926 <span class="frame-index">0</span>
927 <div class="frame-method-info">
928 <span class="frame-class"><span class="delimiter">Illuminate</span>\<span class="delimiter">Foundation</span>\<span class="delimiter">Bootstrap</span>\<span class="delimiter">HandleExceptions</span></span>
929 <span class="frame-function"><span class="delimiter">handleException</span></span>
930 </div>
931
932 <div class="frame-file">
933 <span class="delimiter">[internal]</span><!--
934 --><span class="frame-line">0</span>
935 </div>
936 </div>
937</div></div>
938 <div class="panel details-container cf">
939 <div class="frame-code-container ">
940 <div class="frame-code active" id="frame-code-0">
941 <div class="frame-file">
942 <strong><span class="delimiter"></span>/<span class="delimiter">var</span>/<span class="delimiter">www</span>/<span class="delimiter">dev.api</span>/<span class="delimiter">vendor</span>/<span class="delimiter">monolog</span>/<span class="delimiter">monolog</span>/<span class="delimiter">src</span>/<span class="delimiter">Monolog</span>/<span class="delimiter">Handler</span>/<span class="delimiter">StreamHandler.php</span></strong>
943 </div>
944 <pre id="frame-code-linenums-0" class="code-block linenums:88"> /**
945 * {@inheritdoc}
946 */
947 protected function write(array $record)
948 {
949 if (!is_resource($this->stream)) {
950 if (null === $this->url || '' === $this->url) {
951 throw new \LogicException('Missing stream url, the stream can not be opened. This may be caused by a premature call to close().');
952 }
953 $this->createDir();
954 $this->errorMessage = null;
955 set_error_handler(array($this, 'customErrorHandler'));
956 $this->stream = fopen($this->url, 'a');
957 if ($this->filePermission !== null) {
958 @chmod($this->url, $this->filePermission);
959 }
960 restore_error_handler();
961 if (!is_resource($this->stream)) {
962 $this->stream = null;
963 throw new \UnexpectedValueException(sprintf('The stream or file "%s" could not be opened: '.$this->errorMessage, $this->url));
964 }
965 }
966
967 if ($this->useLocking) {
968 // ignoring errors here, there's not much we can do about them
969 flock($this->stream, LOCK_EX);
970 }
971
972 $this->streamWrite($this->stream, $record);
973
974 if ($this->useLocking) {
975 flock($this->stream, LOCK_UN);
976 }
977 }
978
979 /**
980 * Write to stream
981 * @param resource $stream
982 * @param array $record
983 */</pre>
984
985
986 <div class="frame-file">
987 Arguments
988 </div>
989 <div id="frame-code-args-0" class="code-block frame-args">
990 <ol class="linenums"><li><script> Sfdump = window.Sfdump || (function (doc) { var refStyle = doc.createElement('style'), rxEsc = /([.*+?^${}()|\[\]\/\\])/g, idRx = /\bsf-dump-\d+-ref[012]\w+\b/, keyHint = 0 <= navigator.platform.toUpperCase().indexOf('MAC') ? 'Cmd' : 'Ctrl', addEventListener = function (e, n, cb) { e.addEventListener(n, cb, false); }; (doc.documentElement.firstElementChild || doc.documentElement.children[0]).appendChild(refStyle); if (!doc.addEventListener) { addEventListener = function (element, eventName, callback) { element.attachEvent('on' + eventName, function (e) { e.preventDefault = function () {e.returnValue = false;}; e.target = e.srcElement; callback(e); }); }; } function toggle(a, recursive) { var s = a.nextSibling || {}, oldClass = s.className, arrow, newClass; if (/\bsf-dump-compact\b/.test(oldClass)) { arrow = '▼'; newClass = 'sf-dump-expanded'; } else if (/\bsf-dump-expanded\b/.test(oldClass)) { arrow = '▶'; newClass = 'sf-dump-compact'; } else { return false; } if (doc.createEvent && s.dispatchEvent) { var event = doc.createEvent('Event'); event.initEvent('sf-dump-expanded' === newClass ? 'sfbeforedumpexpand' : 'sfbeforedumpcollapse', true, false); s.dispatchEvent(event); } a.lastChild.innerHTML = arrow; s.className = s.className.replace(/\bsf-dump-(compact|expanded)\b/, newClass); if (recursive) { try { a = s.querySelectorAll('.'+oldClass); for (s = 0; s < a.length; ++s) { if (-1 == a[s].className.indexOf(newClass)) { a[s].className = newClass; a[s].previousSibling.lastChild.innerHTML = arrow; } } } catch (e) { } } return true; }; function collapse(a, recursive) { var s = a.nextSibling || {}, oldClass = s.className; if (/\bsf-dump-expanded\b/.test(oldClass)) { toggle(a, recursive); return true; } return false; }; function expand(a, recursive) { var s = a.nextSibling || {}, oldClass = s.className; if (/\bsf-dump-compact\b/.test(oldClass)) { toggle(a, recursive); return true; } return false; }; function collapseAll(root) { var a = root.querySelector('a.sf-dump-toggle'); if (a) { collapse(a, true); expand(a); return true; } return false; } function reveal(node) { var previous, parents = []; while ((node = node.parentNode || {}) && (previous = node.previousSibling) && 'A' === previous.tagName) { parents.push(previous); } if (0 !== parents.length) { parents.forEach(function (parent) { expand(parent); }); return true; } return false; } function highlight(root, activeNode, nodes) { resetHighlightedNodes(root); Array.from(nodes||[]).forEach(function (node) { if (!/\bsf-dump-highlight\b/.test(node.className)) { node.className = node.className + ' sf-dump-highlight'; } }); if (!/\bsf-dump-highlight-active\b/.test(activeNode.className)) { activeNode.className = activeNode.className + ' sf-dump-highlight-active'; } } function resetHighlightedNodes(root) { Array.from(root.querySelectorAll('.sf-dump-str, .sf-dump-key, .sf-dump-public, .sf-dump-protected, .sf-dump-private')).forEach(function (strNode) { strNode.className = strNode.className.replace(/\bsf-dump-highlight\b/, ''); strNode.className = strNode.className.replace(/\bsf-dump-highlight-active\b/, ''); }); } return function (root, x) { root = doc.getElementById(root); var indentRx = new RegExp('^('+(root.getAttribute('data-indent-pad') || ' ').replace(rxEsc, '\\$1')+')+', 'm'), options = {"maxDepth":1,"maxStringLength":160,"fileLinkFormat":false}, elt = root.getElementsByTagName('A'), len = elt.length, i = 0, s, h, t = []; while (i < len) t.push(elt[i++]); for (i in x) { options[i] = x[i]; } function a(e, f) { addEventListener(root, e, function (e, n) { if ('A' == e.target.tagName) { f(e.target, e); } else if ('A' == e.target.parentNode.tagName) { f(e.target.parentNode, e); } else if ((n = e.target.nextElementSibling) && 'A' == n.tagName) { if (!/\bsf-dump-toggle\b/.test(n.className)) { n = n.nextElementSibling; } f(n, e, true); } }); }; function isCtrlKey(e) { return e.ctrlKey || e.metaKey; } function xpathString(str) { var parts = str.match(/[^'"]+|['"]/g).map(function (part) { if ("'" == part) { return '"\'"'; } if ('"' == part) { return "'\"'"; } return "'" + part + "'"; }); return "concat(" + parts.join(",") + ", '')"; } function xpathHasClass(className) { return "contains(concat(' ', normalize-space(@class), ' '), ' " + className +" ')"; } addEventListener(root, 'mouseover', function (e) { if ('' != refStyle.innerHTML) { refStyle.innerHTML = ''; } }); a('mouseover', function (a, e, c) { if (c) { e.target.style.cursor = "pointer"; } else if (a = idRx.exec(a.className)) { try { refStyle.innerHTML = 'pre.sf-dump .'+a[0]+'{background-color: #B729D9; color: #FFF !important; border-radius: 2px}'; } catch (e) { } } }); a('click', function (a, e, c) { if (/\bsf-dump-toggle\b/.test(a.className)) { e.preventDefault(); if (!toggle(a, isCtrlKey(e))) { var r = doc.getElementById(a.getAttribute('href').substr(1)), s = r.previousSibling, f = r.parentNode, t = a.parentNode; t.replaceChild(r, a); f.replaceChild(a, s); t.insertBefore(s, r); f = f.firstChild.nodeValue.match(indentRx); t = t.firstChild.nodeValue.match(indentRx); if (f && t && f[0] !== t[0]) { r.innerHTML = r.innerHTML.replace(new RegExp('^'+f[0].replace(rxEsc, '\\$1'), 'mg'), t[0]); } if (/\bsf-dump-compact\b/.test(r.className)) { toggle(s, isCtrlKey(e)); } } if (c) { } else if (doc.getSelection) { try { doc.getSelection().removeAllRanges(); } catch (e) { doc.getSelection().empty(); } } else { doc.selection.empty(); } } else if (/\bsf-dump-str-toggle\b/.test(a.className)) { e.preventDefault(); e = a.parentNode.parentNode; e.className = e.className.replace(/\bsf-dump-str-(expand|collapse)\b/, a.parentNode.className); } }); elt = root.getElementsByTagName('SAMP'); len = elt.length; i = 0; while (i < len) t.push(elt[i++]); len = t.length; for (i = 0; i < len; ++i) { elt = t[i]; if ('SAMP' == elt.tagName) { a = elt.previousSibling || {}; if ('A' != a.tagName) { a = doc.createElement('A'); a.className = 'sf-dump-ref'; elt.parentNode.insertBefore(a, elt); } else { a.innerHTML += ' '; } a.title = (a.title ? a.title+'\n[' : '[')+keyHint+'+click] Expand all children'; a.innerHTML += '<span>▼</span>'; a.className += ' sf-dump-toggle'; x = 1; if ('sf-dump' != elt.parentNode.className) { x += elt.parentNode.getAttribute('data-depth')/1; } elt.setAttribute('data-depth', x); var className = elt.className; elt.className = 'sf-dump-expanded'; if (className ? 'sf-dump-expanded' !== className : (x > options.maxDepth)) { toggle(a); } } else if (/\bsf-dump-ref\b/.test(elt.className) && (a = elt.getAttribute('href'))) { a = a.substr(1); elt.className += ' '+a; if (/[\[{]$/.test(elt.previousSibling.nodeValue)) { a = a != elt.nextSibling.id && doc.getElementById(a); try { s = a.nextSibling; elt.appendChild(a); s.parentNode.insertBefore(a, s); if (/^[@#]/.test(elt.innerHTML)) { elt.innerHTML += ' <span>▶</span>'; } else { elt.innerHTML = '<span>▶</span>'; elt.className = 'sf-dump-ref'; } elt.className += ' sf-dump-toggle'; } catch (e) { if ('&' == elt.innerHTML.charAt(0)) { elt.innerHTML = '…'; elt.className = 'sf-dump-ref'; } } } } } if (doc.evaluate && Array.from && root.children.length > 1) { root.setAttribute('tabindex', 0); SearchState = function () { this.nodes = []; this.idx = 0; }; SearchState.prototype = { next: function () { if (this.isEmpty()) { return this.current(); } this.idx = this.idx < (this.nodes.length - 1) ? this.idx + 1 : 0; return this.current(); }, previous: function () { if (this.isEmpty()) { return this.current(); } this.idx = this.idx > 0 ? this.idx - 1 : (this.nodes.length - 1); return this.current(); }, isEmpty: function () { return 0 === this.count(); }, current: function () { if (this.isEmpty()) { return null; } return this.nodes[this.idx]; }, reset: function () { this.nodes = []; this.idx = 0; }, count: function () { return this.nodes.length; }, }; function showCurrent(state) { var currentNode = state.current(), currentRect, searchRect; if (currentNode) { reveal(currentNode); highlight(root, currentNode, state.nodes); if ('scrollIntoView' in currentNode) { currentNode.scrollIntoView(true); currentRect = currentNode.getBoundingClientRect(); searchRect = search.getBoundingClientRect(); if (currentRect.top < (searchRect.top + searchRect.height)) { window.scrollBy(0, -(searchRect.top + searchRect.height + 5)); } } } counter.textContent = (state.isEmpty() ? 0 : state.idx + 1) + ' of ' + state.count(); } var search = doc.createElement('div'); search.className = 'sf-dump-search-wrapper sf-dump-search-hidden'; search.innerHTML = ' <input type="text" class="sf-dump-search-input"> <span class="sf-dump-search-count">0 of 0<\/span> <button type="button" class="sf-dump-search-input-previous" tabindex="-1"> <svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1683 1331l-166 165q-19 19-45 19t-45-19L896 965l-531 531q-19 19-45 19t-45-19l-166-165q-19-19-19-45.5t19-45.5l742-741q19-19 45-19t45 19l742 741q19 19 19 45.5t-19 45.5z"\/><\/svg> <\/button> <button type="button" class="sf-dump-search-input-next" tabindex="-1"> <svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1683 808l-742 741q-19 19-45 19t-45-19L109 808q-19-19-19-45.5t19-45.5l166-165q19-19 45-19t45 19l531 531 531-531q19-19 45-19t45 19l166 165q19 19 19 45.5t-19 45.5z"\/><\/svg> <\/button> '; root.insertBefore(search, root.firstChild); var state = new SearchState(); var searchInput = search.querySelector('.sf-dump-search-input'); var counter = search.querySelector('.sf-dump-search-count'); var searchInputTimer = 0; var previousSearchQuery = ''; addEventListener(searchInput, 'keyup', function (e) { var searchQuery = e.target.value; /* Don't perform anything if the pressed key didn't change the query */ if (searchQuery === previousSearchQuery) { return; } previousSearchQuery = searchQuery; clearTimeout(searchInputTimer); searchInputTimer = setTimeout(function () { state.reset(); collapseAll(root); resetHighlightedNodes(root); if ('' === searchQuery) { counter.textContent = '0 of 0'; return; } var classMatches = [ "sf-dump-str", "sf-dump-key", "sf-dump-public", "sf-dump-protected", "sf-dump-private", ].map(xpathHasClass).join(' or '); var xpathResult = doc.evaluate('.//span[' + classMatches + '][contains(translate(child::text(), ' + xpathString(searchQuery.toUpperCase()) + ', ' + xpathString(searchQuery.toLowerCase()) + '), ' + xpathString(searchQuery.toLowerCase()) + ')]', root, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null); while (node = xpathResult.iterateNext()) state.nodes.push(node); showCurrent(state); }, 400); }); Array.from(search.querySelectorAll('.sf-dump-search-input-next, .sf-dump-search-input-previous')).forEach(function (btn) { addEventListener(btn, 'click', function (e) { e.preventDefault(); -1 !== e.target.className.indexOf('next') ? state.next() : state.previous(); searchInput.focus(); collapseAll(root); showCurrent(state); }) }); addEventListener(root, 'keydown', function (e) { var isSearchActive = !/\bsf-dump-search-hidden\b/.test(search.className); if ((114 === e.keyCode && !isSearchActive) || (isCtrlKey(e) && 70 === e.keyCode)) { /* F3 or CMD/CTRL + F */ e.preventDefault(); search.className = search.className.replace(/\bsf-dump-search-hidden\b/, ''); searchInput.focus(); } else if (isSearchActive) { if (27 === e.keyCode) { /* ESC key */ search.className += ' sf-dump-search-hidden'; e.preventDefault(); resetHighlightedNodes(root); searchInput.value = ''; } else if ( (isCtrlKey(e) && 71 === e.keyCode) /* CMD/CTRL + G */ || 13 === e.keyCode /* Enter */ || 114 === e.keyCode /* F3 */ ) { e.preventDefault(); e.shiftKey ? state.previous() : state.next(); collapseAll(root); showCurrent(state); } } }); } if (0 >= options.maxStringLength) { return; } try { elt = root.querySelectorAll('.sf-dump-str'); len = elt.length; i = 0; t = []; while (i < len) t.push(elt[i++]); len = t.length; for (i = 0; i < len; ++i) { elt = t[i]; s = elt.innerText || elt.textContent; x = s.length - options.maxStringLength; if (0 < x) { h = elt.innerHTML; elt[elt.innerText ? 'innerText' : 'textContent'] = s.substring(0, options.maxStringLength); elt.className += ' sf-dump-str-collapse'; elt.innerHTML = '<span class=sf-dump-str-collapse>'+h+'<a class="sf-dump-ref sf-dump-str-toggle" title="Collapse"> ◀</a></span>'+ '<span class=sf-dump-str-expand>'+elt.innerHTML+'<a class="sf-dump-ref sf-dump-str-toggle" title="'+x+' remaining characters"> ▶</a></span>'; } } } catch (e) { } }; })(document); </script><style> pre.sf-dump { display: block; white-space: pre; padding: 5px; overflow: initial !important; } pre.sf-dump:after { content: ""; visibility: hidden; display: block; height: 0; clear: both; } pre.sf-dump span { display: inline; } pre.sf-dump .sf-dump-compact { display: none; } pre.sf-dump abbr { text-decoration: none; border: none; cursor: help; } pre.sf-dump a { text-decoration: none; cursor: pointer; border: 0; outline: none; color: inherit; } pre.sf-dump .sf-dump-ellipsis { display: inline-block; overflow: visible; text-overflow: ellipsis; max-width: 5em; white-space: nowrap; overflow: hidden; vertical-align: top; } pre.sf-dump .sf-dump-ellipsis+.sf-dump-ellipsis { max-width: none; } pre.sf-dump code { display:inline; padding:0; background:none; } .sf-dump-str-collapse .sf-dump-str-collapse { display: none; } .sf-dump-str-expand .sf-dump-str-expand { display: none; } .sf-dump-public.sf-dump-highlight, .sf-dump-protected.sf-dump-highlight, .sf-dump-private.sf-dump-highlight, .sf-dump-str.sf-dump-highlight, .sf-dump-key.sf-dump-highlight { background: rgba(111, 172, 204, 0.3); border: 1px solid #7DA0B1; border-radius: 3px; } .sf-dump-public.sf-dump-highlight-active, .sf-dump-protected.sf-dump-highlight-active, .sf-dump-private.sf-dump-highlight-active, .sf-dump-str.sf-dump-highlight-active, .sf-dump-key.sf-dump-highlight-active { background: rgba(253, 175, 0, 0.4); border: 1px solid #ffa500; border-radius: 3px; } pre.sf-dump .sf-dump-search-hidden { display: none !important; } pre.sf-dump .sf-dump-search-wrapper { font-size: 0; white-space: nowrap; margin-bottom: 5px; display: flex; position: -webkit-sticky; position: sticky; top: 5px; } pre.sf-dump .sf-dump-search-wrapper > * { vertical-align: top; box-sizing: border-box; height: 21px; font-weight: normal; border-radius: 0; background: #FFF; color: #757575; border: 1px solid #BBB; } pre.sf-dump .sf-dump-search-wrapper > input.sf-dump-search-input { padding: 3px; height: 21px; font-size: 12px; border-right: none; border-top-left-radius: 3px; border-bottom-left-radius: 3px; color: #000; min-width: 15px; width: 100%; } pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-next, pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-previous { background: #F2F2F2; outline: none; border-left: none; font-size: 0; line-height: 0; } pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-next { border-top-right-radius: 3px; border-bottom-right-radius: 3px; } pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-next > svg, pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-previous > svg { pointer-events: none; width: 12px; height: 12px; } pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-count { display: inline-block; padding: 0 5px; margin: 0; border-left: none; line-height: 21px; font-size: 12px; }pre.sf-dump, pre.sf-dump .sf-dump-default{color:#FFFFFF; line-height:normal; font:12px "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace !important; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:99999; word-break: normal}pre.sf-dump .sf-dump-num{color:#BCD42A}pre.sf-dump .sf-dump-const{color: #4bb1b1;}pre.sf-dump .sf-dump-str{color:#BCD42A}pre.sf-dump .sf-dump-note{color:#ef7c61}pre.sf-dump .sf-dump-ref{color:#A0A0A0}pre.sf-dump .sf-dump-public{color:#FFFFFF}pre.sf-dump .sf-dump-protected{color:#FFFFFF}pre.sf-dump .sf-dump-private{color:#FFFFFF}pre.sf-dump .sf-dump-meta{color:#FFFFFF}pre.sf-dump .sf-dump-key{color:#BCD42A}pre.sf-dump .sf-dump-index{color:#ef7c61}pre.sf-dump .sf-dump-ellipsis{color:#FF8400}pre.sf-dump .sf-dump-ns{user-select:none;}</style><pre class=sf-dump id=sf-dump-2109726491 data-indent-pad=" ">"<span class=sf-dump-str title="124 characters">The stream or file "/var/www/dev.api/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied</span>"
991</pre><script>Sfdump("sf-dump-2109726491")</script>
992</li></ol> </div>
993
994 <div class="frame-comments empty">
995 </div>
996
997 </div>
998 <div class="frame-code " id="frame-code-1">
999 <div class="frame-file">
1000 <strong><span class="delimiter"></span>/<span class="delimiter">var</span>/<span class="delimiter">www</span>/<span class="delimiter">dev.api</span>/<span class="delimiter">vendor</span>/<span class="delimiter">monolog</span>/<span class="delimiter">monolog</span>/<span class="delimiter">src</span>/<span class="delimiter">Monolog</span>/<span class="delimiter">Handler</span>/<span class="delimiter">AbstractProcessingHandler.php</span></strong>
1001 </div>
1002 <pre id="frame-code-linenums-1" class="code-block linenums:20"> *
1003 * @author Jordi Boggiano <j.boggiano@seld.be>
1004 * @author Christophe Coevoet <stof@notk.org>
1005 */
1006abstract class AbstractProcessingHandler extends AbstractHandler
1007{
1008 /**
1009 * {@inheritdoc}
1010 */
1011 public function handle(array $record)
1012 {
1013 if (!$this->isHandling($record)) {
1014 return false;
1015 }
1016
1017 $record = $this->processRecord($record);
1018
1019 $record['formatted'] = $this->getFormatter()->format($record);
1020
1021 $this->write($record);
1022
1023 return false === $this->bubble;
1024 }
1025
1026 /**
1027 * Writes the record down to the log of the implementing handler
1028 *
1029 * @param array $record
1030 * @return void
1031 */
1032 abstract protected function write(array $record);
1033
1034 /**
1035 * Processes a record.
1036 *
1037 * @param array $record
1038 * @return array
1039 */
1040 protected function processRecord(array $record)
1041 {</pre>
1042
1043
1044 <div class="frame-file">
1045 Arguments
1046 </div>
1047 <div id="frame-code-args-1" class="code-block frame-args">
1048 <ol class="linenums"><li><pre class=sf-dump id=sf-dump-1168756766 data-indent-pad=" "><span class=sf-dump-note>array:8</span> [<samp>
1049 "<span class=sf-dump-key>message</span>" => "<span class=sf-dump-str title="59 characters">Unable to create configured logger. Using emergency logger.</span>"
1050 "<span class=sf-dump-key>context</span>" => <span class=sf-dump-note>array:1</span> [<samp>
1051 "<span class=sf-dump-key>exception</span>" => <span class=sf-dump-note>InvalidArgumentException</span> {<a class=sf-dump-ref>#1062</a><samp>
1052 #<span class=sf-dump-protected title="Protected property">message</span>: "<span class=sf-dump-str title="22 characters">Log [] is not defined.</span>"
1053 #<span class=sf-dump-protected title="Protected property">code</span>: <span class=sf-dump-num>0</span>
1054 #<span class=sf-dump-protected title="Protected property">file</span>: "<span class=sf-dump-str title="/var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php
105575 characters"><span class="sf-dump-ellipsis sf-dump-ellipsis-path">/var/www/dev.api/vendor</span><span class=sf-dump-ellipsis>/laravel/framework/</span>src/Illuminate/Log/LogManager.php</span>"
1056 #<span class=sf-dump-protected title="Protected property">line</span>: <span class=sf-dump-num>168</span>
1057 </samp>}
1058 </samp>]
1059 "<span class=sf-dump-key>level</span>" => <span class=sf-dump-num>600</span>
1060 "<span class=sf-dump-key>level_name</span>" => "<span class=sf-dump-str title="9 characters">EMERGENCY</span>"
1061 "<span class=sf-dump-key>channel</span>" => "<span class=sf-dump-str title="7 characters">laravel</span>"
1062 "<span class=sf-dump-key>datetime</span>" => <span class=sf-dump-note>DateTime @1567526655</span> {<a class=sf-dump-ref>#1068</a><samp>
1063 <span class=sf-dump-meta>date</span>: <span class=sf-dump-const title="Tuesday, September 3, 2019
1064- 00:00:00.008172 from now
1065DST Off">2019-09-03 16:04:15.899882 UTC (+00:00)</span>
1066 </samp>}
1067 "<span class=sf-dump-key>extra</span>" => []
1068 "<span class=sf-dump-key>formatted</span>" => """
1069 <span class=sf-dump-str title="1271 characters">[2019-09-03 16:04:15] laravel.EMERGENCY: Unable to create configured logger. Using emergency logger. {"exception":"[object] (InvalidArgumentException(code: 0): Log [] is not defined. at /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:168)<span class="sf-dump-default sf-dump-ns">\n</span></span>
1070 <span class=sf-dump-str title="1271 characters">[stacktrace]<span class="sf-dump-default sf-dump-ns">\n</span></span>
1071 <span class=sf-dump-str title="1271 characters">#0 /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(102): Illuminate\\Log\\LogManager->resolve(NULL)<span class="sf-dump-default sf-dump-ns">\n</span></span>
1072 <span class=sf-dump-str title="1271 characters">#1 /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(90): Illuminate\\Log\\LogManager->get(NULL)<span class="sf-dump-default sf-dump-ns">\n</span></span>
1073 <span class=sf-dump-str title="1271 characters">#2 /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(500): Illuminate\\Log\\LogManager->driver()<span class="sf-dump-default sf-dump-ns">\n</span></span>
1074 <span class=sf-dump-str title="1271 characters">#3 /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(118): Illuminate\\Log\\LogManager->error('The stream or f...', Array)<span class="sf-dump-default sf-dump-ns">\n</span></span>
1075 <span class=sf-dump-str title="1271 characters">#4 /var/www/dev.api/app/Exceptions/Handler.php(44): Illuminate\\Foundation\\Exceptions\\Handler->report(Object(UnexpectedValueException))<span class="sf-dump-default sf-dump-ns">\n</span></span>
1076 <span class=sf-dump-str title="1271 characters">#5 /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(92): App\\Exceptions\\Handler->report(Object(UnexpectedValueException))<span class="sf-dump-default sf-dump-ns">\n</span></span>
1077 <span class=sf-dump-str title="1271 characters">#6 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleException(Object(UnexpectedValueException))<span class="sf-dump-default sf-dump-ns">\n</span></span>
1078 <span class=sf-dump-str title="1271 characters">#7 {main}<span class="sf-dump-default sf-dump-ns">\n</span></span>
1079 <span class=sf-dump-str title="1271 characters">"} <span class="sf-dump-default sf-dump-ns">\n</span></span>
1080 """
1081</samp>]
1082</pre><script>Sfdump("sf-dump-1168756766")</script>
1083</li></ol> </div>
1084
1085 <div class="frame-comments empty">
1086 </div>
1087
1088 </div>
1089 <div class="frame-code " id="frame-code-2">
1090 <div class="frame-file">
1091 <strong><span class="delimiter"></span>/<span class="delimiter">var</span>/<span class="delimiter">www</span>/<span class="delimiter">dev.api</span>/<span class="delimiter">vendor</span>/<span class="delimiter">monolog</span>/<span class="delimiter">monolog</span>/<span class="delimiter">src</span>/<span class="delimiter">Monolog</span>/<span class="delimiter">Logger.php</span></strong>
1092 </div>
1093 <pre id="frame-code-linenums-2" class="code-block linenums:325"> }
1094 $ts->setTimezone(static::$timezone);
1095
1096 $record = array(
1097 'message' => (string) $message,
1098 'context' => $context,
1099 'level' => $level,
1100 'level_name' => $levelName,
1101 'channel' => $this->name,
1102 'datetime' => $ts,
1103 'extra' => array(),
1104 );
1105
1106 try {
1107 foreach ($this->processors as $processor) {
1108 $record = call_user_func($processor, $record);
1109 }
1110
1111 while ($handler = current($this->handlers)) {
1112 if (true === $handler->handle($record)) {
1113 break;
1114 }
1115
1116 next($this->handlers);
1117 }
1118 } catch (Exception $e) {
1119 $this->handleException($e, $record);
1120 }
1121
1122 return true;
1123 }
1124
1125 /**
1126 * Ends a log cycle and frees all resources used by handlers.
1127 *
1128 * Closing a Handler means flushing all buffers and freeing any open resources/handles.
1129 * Handlers that have been closed should be able to accept log records again and re-open
1130 * themselves on demand, but this may not always be possible depending on implementation.
1131 *
1132 * This is useful at the end of a request and will be called automatically on every handler</pre>
1133
1134
1135 <div class="frame-file">
1136 Arguments
1137 </div>
1138 <div id="frame-code-args-2" class="code-block frame-args">
1139 <ol class="linenums"><li><pre class=sf-dump id=sf-dump-1112077320 data-indent-pad=" "><span class=sf-dump-note>array:8</span> [<samp>
1140 "<span class=sf-dump-key>message</span>" => "<span class=sf-dump-str title="59 characters">Unable to create configured logger. Using emergency logger.</span>"
1141 "<span class=sf-dump-key>context</span>" => <span class=sf-dump-note>array:1</span> [<samp>
1142 "<span class=sf-dump-key>exception</span>" => <span class=sf-dump-note>InvalidArgumentException</span> {<a class=sf-dump-ref>#1062</a><samp>
1143 #<span class=sf-dump-protected title="Protected property">message</span>: "<span class=sf-dump-str title="22 characters">Log [] is not defined.</span>"
1144 #<span class=sf-dump-protected title="Protected property">code</span>: <span class=sf-dump-num>0</span>
1145 #<span class=sf-dump-protected title="Protected property">file</span>: "<span class=sf-dump-str title="/var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php
114675 characters"><span class="sf-dump-ellipsis sf-dump-ellipsis-path">/var/www/dev.api/vendor</span><span class=sf-dump-ellipsis>/laravel/framework/</span>src/Illuminate/Log/LogManager.php</span>"
1147 #<span class=sf-dump-protected title="Protected property">line</span>: <span class=sf-dump-num>168</span>
1148 </samp>}
1149 </samp>]
1150 "<span class=sf-dump-key>level</span>" => <span class=sf-dump-num>600</span>
1151 "<span class=sf-dump-key>level_name</span>" => "<span class=sf-dump-str title="9 characters">EMERGENCY</span>"
1152 "<span class=sf-dump-key>channel</span>" => "<span class=sf-dump-str title="7 characters">laravel</span>"
1153 "<span class=sf-dump-key>datetime</span>" => <span class=sf-dump-note>DateTime @1567526655</span> {<a class=sf-dump-ref>#1068</a><samp>
1154 <span class=sf-dump-meta>date</span>: <span class=sf-dump-const title="Tuesday, September 3, 2019
1155- 00:00:00.010468 from now
1156DST Off">2019-09-03 16:04:15.899882 UTC (+00:00)</span>
1157 </samp>}
1158 "<span class=sf-dump-key>extra</span>" => []
1159 "<span class=sf-dump-key>formatted</span>" => """
1160 <span class=sf-dump-str title="1271 characters">[2019-09-03 16:04:15] laravel.EMERGENCY: Unable to create configured logger. Using emergency logger. {"exception":"[object] (InvalidArgumentException(code: 0): Log [] is not defined. at /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:168)<span class="sf-dump-default sf-dump-ns">\n</span></span>
1161 <span class=sf-dump-str title="1271 characters">[stacktrace]<span class="sf-dump-default sf-dump-ns">\n</span></span>
1162 <span class=sf-dump-str title="1271 characters">#0 /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(102): Illuminate\\Log\\LogManager->resolve(NULL)<span class="sf-dump-default sf-dump-ns">\n</span></span>
1163 <span class=sf-dump-str title="1271 characters">#1 /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(90): Illuminate\\Log\\LogManager->get(NULL)<span class="sf-dump-default sf-dump-ns">\n</span></span>
1164 <span class=sf-dump-str title="1271 characters">#2 /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php(500): Illuminate\\Log\\LogManager->driver()<span class="sf-dump-default sf-dump-ns">\n</span></span>
1165 <span class=sf-dump-str title="1271 characters">#3 /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(118): Illuminate\\Log\\LogManager->error('The stream or f...', Array)<span class="sf-dump-default sf-dump-ns">\n</span></span>
1166 <span class=sf-dump-str title="1271 characters">#4 /var/www/dev.api/app/Exceptions/Handler.php(44): Illuminate\\Foundation\\Exceptions\\Handler->report(Object(UnexpectedValueException))<span class="sf-dump-default sf-dump-ns">\n</span></span>
1167 <span class=sf-dump-str title="1271 characters">#5 /var/www/dev.api/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(92): App\\Exceptions\\Handler->report(Object(UnexpectedValueException))<span class="sf-dump-default sf-dump-ns">\n</span></span>
1168 <span class=sf-dump-str title="1271 characters">#6 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleException(Object(UnexpectedValueException))<span class="sf-dump-default sf-dump-ns">\n</span></span>
1169 <span class=sf-dump-str title="1271 characters">#7 {main}<span class="sf-dump-default sf-dump-ns">\n</span></span>
1170 <span class=sf-dump-str title="1271 characters">"} <span class="sf-dump-default sf-dump-ns">\n</span></span>
1171 """
1172</samp>]
1173</pre><script>Sfdump("sf-dump-1112077320")</script>
1174</li></ol> </div>
1175
1176 <div class="frame-comments empty">
1177 </div>
1178
1179 </div>
1180 <div class="frame-code " id="frame-code-3">
1181 <div class="frame-file">
1182 <strong><span class="delimiter"></span>/<span class="delimiter">var</span>/<span class="delimiter">www</span>/<span class="delimiter">dev.api</span>/<span class="delimiter">vendor</span>/<span class="delimiter">monolog</span>/<span class="delimiter">monolog</span>/<span class="delimiter">src</span>/<span class="delimiter">Monolog</span>/<span class="delimiter">Logger.php</span></strong>
1183 </div>
1184 <pre id="frame-code-linenums-3" class="code-block linenums:758"> * @param array $context The log context
1185 * @return bool Whether the record has been processed
1186 */
1187 public function emerg($message, array $context = array())
1188 {
1189 return $this->addRecord(static::EMERGENCY, $message, $context);
1190 }
1191
1192 /**
1193 * Adds a log record at the EMERGENCY level.
1194 *
1195 * This method allows for compatibility with common interfaces.
1196 *
1197 * @param string $message The log message
1198 * @param array $context The log context
1199 * @return bool Whether the record has been processed
1200 */
1201 public function emergency($message, array $context = array())
1202 {
1203 return $this->addRecord(static::EMERGENCY, $message, $context);
1204 }
1205
1206 /**
1207 * Set the timezone to be used for the timestamp of log records.
1208 *
1209 * This is stored globally for all Logger instances
1210 *
1211 * @param \DateTimeZone $tz Timezone object
1212 */
1213 public static function setTimezone(\DateTimeZone $tz)
1214 {
1215 self::$timezone = $tz;
1216 }
1217}
1218 </pre>
1219
1220
1221 <div class="frame-file">
1222 Arguments
1223 </div>
1224 <div id="frame-code-args-3" class="code-block frame-args">
1225 <ol class="linenums"><li><pre class=sf-dump id=sf-dump-599425183 data-indent-pad=" "><span class=sf-dump-num>600</span>
1226</pre><script>Sfdump("sf-dump-599425183")</script>
1227</li><li><pre class=sf-dump id=sf-dump-2135345999 data-indent-pad=" ">"<span class=sf-dump-str title="59 characters">Unable to create configured logger. Using emergency logger.</span>"
1228</pre><script>Sfdump("sf-dump-2135345999")</script>
1229</li><li><pre class=sf-dump id=sf-dump-320578511 data-indent-pad=" "><span class=sf-dump-note>array:1</span> [<samp>
1230 "<span class=sf-dump-key>exception</span>" => <span class=sf-dump-note>InvalidArgumentException</span> {<a class=sf-dump-ref>#1062</a><samp>
1231 #<span class=sf-dump-protected title="Protected property">message</span>: "<span class=sf-dump-str title="22 characters">Log [] is not defined.</span>"
1232 #<span class=sf-dump-protected title="Protected property">code</span>: <span class=sf-dump-num>0</span>
1233 #<span class=sf-dump-protected title="Protected property">file</span>: "<span class=sf-dump-str title="/var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php
123475 characters"><span class="sf-dump-ellipsis sf-dump-ellipsis-path">/var/www/dev.api/vendor</span><span class=sf-dump-ellipsis>/laravel/framework/</span>src/Illuminate/Log/LogManager.php</span>"
1235 #<span class=sf-dump-protected title="Protected property">line</span>: <span class=sf-dump-num>168</span>
1236 </samp>}
1237</samp>]
1238</pre><script>Sfdump("sf-dump-320578511")</script>
1239</li></ol> </div>
1240
1241 <div class="frame-comments empty">
1242 </div>
1243
1244 </div>
1245 <div class="frame-code " id="frame-code-4">
1246 <div class="frame-file">
1247 <strong><span class="delimiter"></span>/<span class="delimiter">var</span>/<span class="delimiter">www</span>/<span class="delimiter">dev.api</span>/<span class="delimiter">vendor</span>/<span class="delimiter">laravel</span>/<span class="delimiter">framework</span>/<span class="delimiter">src</span>/<span class="delimiter">Illuminate</span>/<span class="delimiter">Log</span>/<span class="delimiter">Logger.php</span></strong>
1248 </div>
1249 <pre id="frame-code-linenums-4" class="code-block linenums:157"> * @return void
1250 */
1251 public function write($level, $message, array $context = [])
1252 {
1253 $this->writeLog($level, $message, $context);
1254 }
1255
1256 /**
1257 * Write a message to the log.
1258 *
1259 * @param string $level
1260 * @param string $message
1261 * @param array $context
1262 * @return void
1263 */
1264 protected function writeLog($level, $message, $context)
1265 {
1266 $this->fireLogEvent($level, $message = $this->formatMessage($message), $context);
1267
1268 $this->logger->{$level}($message, $context);
1269 }
1270
1271 /**
1272 * Register a new callback handler for when a log event is triggered.
1273 *
1274 * @param \Closure $callback
1275 * @return void
1276 *
1277 * @throws \RuntimeException
1278 */
1279 public function listen(Closure $callback)
1280 {
1281 if (! isset($this->dispatcher)) {
1282 throw new RuntimeException('Events dispatcher has not been set.');
1283 }
1284
1285 $this->dispatcher->listen(MessageLogged::class, $callback);
1286 }
1287
1288 /**</pre>
1289
1290
1291 <div class="frame-file">
1292 Arguments
1293 </div>
1294 <div id="frame-code-args-4" class="code-block frame-args">
1295 <ol class="linenums"><li><pre class=sf-dump id=sf-dump-1172397610 data-indent-pad=" ">"<span class=sf-dump-str title="59 characters">Unable to create configured logger. Using emergency logger.</span>"
1296</pre><script>Sfdump("sf-dump-1172397610")</script>
1297</li><li><pre class=sf-dump id=sf-dump-1336323495 data-indent-pad=" "><span class=sf-dump-note>array:1</span> [<samp>
1298 "<span class=sf-dump-key>exception</span>" => <span class=sf-dump-note>InvalidArgumentException</span> {<a class=sf-dump-ref>#1062</a><samp>
1299 #<span class=sf-dump-protected title="Protected property">message</span>: "<span class=sf-dump-str title="22 characters">Log [] is not defined.</span>"
1300 #<span class=sf-dump-protected title="Protected property">code</span>: <span class=sf-dump-num>0</span>
1301 #<span class=sf-dump-protected title="Protected property">file</span>: "<span class=sf-dump-str title="/var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php
130275 characters"><span class="sf-dump-ellipsis sf-dump-ellipsis-path">/var/www/dev.api/vendor</span><span class=sf-dump-ellipsis>/laravel/framework/</span>src/Illuminate/Log/LogManager.php</span>"
1303 #<span class=sf-dump-protected title="Protected property">line</span>: <span class=sf-dump-num>168</span>
1304 </samp>}
1305</samp>]
1306</pre><script>Sfdump("sf-dump-1336323495")</script>
1307</li></ol> </div>
1308
1309 <div class="frame-comments empty">
1310 </div>
1311
1312 </div>
1313 <div class="frame-code " id="frame-code-5">
1314 <div class="frame-file">
1315 <strong><span class="delimiter"></span>/<span class="delimiter">var</span>/<span class="delimiter">www</span>/<span class="delimiter">dev.api</span>/<span class="delimiter">vendor</span>/<span class="delimiter">laravel</span>/<span class="delimiter">framework</span>/<span class="delimiter">src</span>/<span class="delimiter">Illuminate</span>/<span class="delimiter">Log</span>/<span class="delimiter">Logger.php</span></strong>
1316 </div>
1317 <pre id="frame-code-linenums-5" class="code-block linenums:32"> * @param \Psr\Log\LoggerInterface $logger
1318 * @param \Illuminate\Contracts\Events\Dispatcher|null $dispatcher
1319 * @return void
1320 */
1321 public function __construct(LoggerInterface $logger, Dispatcher $dispatcher = null)
1322 {
1323 $this->logger = $logger;
1324 $this->dispatcher = $dispatcher;
1325 }
1326
1327 /**
1328 * Log an emergency message to the logs.
1329 *
1330 * @param string $message
1331 * @param array $context
1332 * @return void
1333 */
1334 public function emergency($message, array $context = [])
1335 {
1336 $this->writeLog(__FUNCTION__, $message, $context);
1337 }
1338
1339 /**
1340 * Log an alert message to the logs.
1341 *
1342 * @param string $message
1343 * @param array $context
1344 * @return void
1345 */
1346 public function alert($message, array $context = [])
1347 {
1348 $this->writeLog(__FUNCTION__, $message, $context);
1349 }
1350
1351 /**
1352 * Log a critical message to the logs.
1353 *
1354 * @param string $message
1355 * @param array $context
1356 * @return void</pre>
1357
1358
1359 <div class="frame-file">
1360 Arguments
1361 </div>
1362 <div id="frame-code-args-5" class="code-block frame-args">
1363 <ol class="linenums"><li><pre class=sf-dump id=sf-dump-1761094743 data-indent-pad=" ">"<span class=sf-dump-str title="9 characters">emergency</span>"
1364</pre><script>Sfdump("sf-dump-1761094743")</script>
1365</li><li><pre class=sf-dump id=sf-dump-2129391439 data-indent-pad=" ">"<span class=sf-dump-str title="59 characters">Unable to create configured logger. Using emergency logger.</span>"
1366</pre><script>Sfdump("sf-dump-2129391439")</script>
1367</li><li><pre class=sf-dump id=sf-dump-576564989 data-indent-pad=" "><span class=sf-dump-note>array:1</span> [<samp>
1368 "<span class=sf-dump-key>exception</span>" => <span class=sf-dump-note>InvalidArgumentException</span> {<a class=sf-dump-ref>#1062</a><samp>
1369 #<span class=sf-dump-protected title="Protected property">message</span>: "<span class=sf-dump-str title="22 characters">Log [] is not defined.</span>"
1370 #<span class=sf-dump-protected title="Protected property">code</span>: <span class=sf-dump-num>0</span>
1371 #<span class=sf-dump-protected title="Protected property">file</span>: "<span class=sf-dump-str title="/var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php
137275 characters"><span class="sf-dump-ellipsis sf-dump-ellipsis-path">/var/www/dev.api/vendor</span><span class=sf-dump-ellipsis>/laravel/framework/</span>src/Illuminate/Log/LogManager.php</span>"
1373 #<span class=sf-dump-protected title="Protected property">line</span>: <span class=sf-dump-num>168</span>
1374 </samp>}
1375</samp>]
1376</pre><script>Sfdump("sf-dump-576564989")</script>
1377</li></ol> </div>
1378
1379 <div class="frame-comments empty">
1380 </div>
1381
1382 </div>
1383 <div class="frame-code " id="frame-code-6">
1384 <div class="frame-file">
1385 <strong><span class="delimiter"></span>/<span class="delimiter">var</span>/<span class="delimiter">www</span>/<span class="delimiter">dev.api</span>/<span class="delimiter">vendor</span>/<span class="delimiter">laravel</span>/<span class="delimiter">framework</span>/<span class="delimiter">src</span>/<span class="delimiter">Illuminate</span>/<span class="delimiter">Log</span>/<span class="delimiter">LogManager.php</span></strong>
1386 </div>
1387 <pre id="frame-code-linenums-6" class="code-block linenums:89"> {
1388 return $this->get($driver ?? $this->getDefaultDriver());
1389 }
1390
1391 /**
1392 * Attempt to get the log from the local cache.
1393 *
1394 * @param string $name
1395 * @return \Psr\Log\LoggerInterface
1396 */
1397 protected function get($name)
1398 {
1399 try {
1400 return $this->channels[$name] ?? with($this->resolve($name), function ($logger) use ($name) {
1401 return $this->channels[$name] = $this->tap($name, new Logger($logger, $this->app['events']));
1402 });
1403 } catch (Throwable $e) {
1404 return tap($this->createEmergencyLogger(), function ($logger) use ($e) {
1405 $logger->emergency('Unable to create configured logger. Using emergency logger.', [
1406 'exception' => $e,
1407 ]);
1408 });
1409 }
1410 }
1411
1412 /**
1413 * Apply the configured taps for the logger.
1414 *
1415 * @param string $name
1416 * @param \Illuminate\Log\Logger $logger
1417 * @return \Illuminate\Log\Logger
1418 */
1419 protected function tap($name, Logger $logger)
1420 {
1421 foreach ($this->configurationFor($name)['tap'] ?? [] as $tap) {
1422 [$class, $arguments] = $this->parseTap($tap);
1423
1424 $this->app->make($class)->__invoke($logger, ...explode(',', $arguments));
1425 }
1426 </pre>
1427
1428
1429 <div class="frame-file">
1430 Arguments
1431 </div>
1432 <div id="frame-code-args-6" class="code-block frame-args">
1433 <ol class="linenums"><li><pre class=sf-dump id=sf-dump-762974343 data-indent-pad=" ">"<span class=sf-dump-str title="59 characters">Unable to create configured logger. Using emergency logger.</span>"
1434</pre><script>Sfdump("sf-dump-762974343")</script>
1435</li><li><pre class=sf-dump id=sf-dump-2097969 data-indent-pad=" "><span class=sf-dump-note>array:1</span> [<samp>
1436 "<span class=sf-dump-key>exception</span>" => <span class=sf-dump-note>InvalidArgumentException</span> {<a class=sf-dump-ref>#1062</a><samp>
1437 #<span class=sf-dump-protected title="Protected property">message</span>: "<span class=sf-dump-str title="22 characters">Log [] is not defined.</span>"
1438 #<span class=sf-dump-protected title="Protected property">code</span>: <span class=sf-dump-num>0</span>
1439 #<span class=sf-dump-protected title="Protected property">file</span>: "<span class=sf-dump-str title="/var/www/dev.api/vendor/laravel/framework/src/Illuminate/Log/LogManager.php
144075 characters"><span class="sf-dump-ellipsis sf-dump-ellipsis-path">/var/www/dev.api/vendor</span><span class=sf-dump-ellipsis>/laravel/framework/</span>src/Illuminate/Log/LogManager.php</span>"
1441 #<span class=sf-dump-protected title="Protected property">line</span>: <span class=sf-dump-num>168</span>
1442 </samp>}
1443</samp>]
1444</pre><script>Sfdump("sf-dump-2097969")</script>
1445</li></ol> </div>
1446
1447 <div class="frame-comments empty">
1448 </div>
1449
1450 </div>
1451 <div class="frame-code " id="frame-code-7">
1452 <div class="frame-file">
1453 <strong><span class="delimiter"></span>/<span class="delimiter">var</span>/<span class="delimiter">www</span>/<span class="delimiter">dev.api</span>/<span class="delimiter">vendor</span>/<span class="delimiter">laravel</span>/<span class="delimiter">framework</span>/<span class="delimiter">src</span>/<span class="delimiter">Illuminate</span>/<span class="delimiter">Support</span>/<span class="delimiter">helpers.php</span></strong>
1454 </div>
1455 <pre id="frame-code-linenums-7" class="code-block linenums:1105"> {
1456 return Str::studly($value);
1457 }
1458}
1459
1460if (! function_exists('tap')) {
1461 /**
1462 * Call the given Closure with the given value then return the value.
1463 *
1464 * @param mixed $value
1465 * @param callable|null $callback
1466 * @return mixed
1467 */
1468 function tap($value, $callback = null)
1469 {
1470 if (is_null($callback)) {
1471 return new HigherOrderTapProxy($value);
1472 }
1473
1474 $callback($value);
1475
1476 return $value;
1477 }
1478}
1479
1480if (! function_exists('throw_if')) {
1481 /**
1482 * Throw the given exception if the given condition is true.
1483 *
1484 * @param mixed $condition
1485 * @param \Throwable|string $exception
1486 * @param array ...$parameters
1487 * @return mixed
1488 *
1489 * @throws \Throwable
1490 */
1491 function throw_if($condition, $exception, ...$parameters)
1492 {
1493 if ($condition) {
1494 throw (is_string($exception) ? new $exception(...$parameters) : $exception);</pre>
1495
1496
1497 <div class="frame-file">
1498 Arguments
1499 </div>
1500 <div id="frame-code-args-7" class="code-block frame-args">
1501 <ol class="linenums"><li><pre class=sf-dump id=sf-dump-169395133 data-indent-pad=" "><abbr title="Illuminate\Log\Logger" class=sf-dump-note>Logger</abbr> {<a class=sf-dump-ref>#1063</a>}
1502</pre><script>Sfdump("sf-dump-169395133")</script>
1503</li></ol> </div>
1504
1505 <div class="frame-comments empty">
1506 </div>
1507
1508 </div>
1509 <div class="frame-code " id="frame-code-8">
1510 <div class="frame-file">
1511 <strong><span class="delimiter"></span>/<span class="delimiter">var</span>/<span class="delimiter">www</span>/<span class="delimiter">dev.api</span>/<span class="delimiter">vendor</span>/<span class="delimiter">laravel</span>/<span class="delimiter">framework</span>/<span class="delimiter">src</span>/<span class="delimiter">Illuminate</span>/<span class="delimiter">Log</span>/<span class="delimiter">LogManager.php</span></strong>
1512 </div>
1513 <pre id="frame-code-linenums-8" class="code-block linenums:91"> }
1514
1515 /**
1516 * Attempt to get the log from the local cache.
1517 *
1518 * @param string $name
1519 * @return \Psr\Log\LoggerInterface
1520 */
1521 protected function get($name)
1522 {
1523 try {
1524 return $this->channels[$name] ?? with($this->resolve($name), function ($logger) use ($name) {
1525 return $this->channels[$name] = $this->tap($name, new Logger($logger, $this->app['events']));
1526 });
1527 } catch (Throwable $e) {
1528 return tap($this->createEmergencyLogger(), function ($logger) use ($e) {
1529 $logger->emergency('Unable to create configured logger. Using emergency logger.', [
1530 'exception' => $e,
1531 ]);
1532 });
1533 }
1534 }
1535
1536 /**
1537 * Apply the configured taps for the logger.
1538 *
1539 * @param string $name
1540 * @param \Illuminate\Log\Logger $logger
1541 * @return \Illuminate\Log\Logger
1542 */
1543 protected function tap($name, Logger $logger)
1544 {
1545 foreach ($this->configurationFor($name)['tap'] ?? [] as $tap) {
1546 [$class, $arguments] = $this->parseTap($tap);
1547
1548 $this->app->make($class)->__invoke($logger, ...explode(',', $arguments));
1549 }
1550
1551 return $logger;
1552 }</pre>
1553
1554
1555 <div class="frame-file">
1556 Arguments
1557 </div>
1558 <div id="frame-code-args-8" class="code-block frame-args">
1559 <ol class="linenums"><li><pre class=sf-dump id=sf-dump-1896521324 data-indent-pad=" "><abbr title="Illuminate\Log\Logger" class=sf-dump-note>Logger</abbr> {<a class=sf-dump-ref>#1063</a>}
1560</pre><script>Sfdump("sf-dump-1896521324")</script>
1561</li><li><pre class=sf-dump id=sf-dump-335729690 data-indent-pad=" "><span class=sf-dump-note>Closure($logger)</span> {<a class=sf-dump-ref>#1067</a> …5}
1562</pre><script>Sfdump("sf-dump-335729690")</script>
1563</li></ol> </div>
1564
1565 <div class="frame-comments empty">
1566 </div>
1567
1568 </div>
1569 <div class="frame-code " id="frame-code-9">
1570 <div class="frame-file">
1571 <strong><span class="delimiter"></span>/<span class="delimiter">var</span>/<span class="delimiter">www</span>/<span class="delimiter">dev.api</span>/<span class="delimiter">vendor</span>/<span class="delimiter">laravel</span>/<span class="delimiter">framework</span>/<span class="delimiter">src</span>/<span class="delimiter">Illuminate</span>/<span class="delimiter">Log</span>/<span class="delimiter">LogManager.php</span></strong>
1572 </div>
1573 <pre id="frame-code-linenums-9" class="code-block linenums:71"> /**
1574 * Get a log channel instance.
1575 *
1576 * @param string|null $channel
1577 * @return mixed
1578 */
1579 public function channel($channel = null)
1580 {
1581 return $this->driver($channel);
1582 }
1583
1584 /**
1585 * Get a log driver instance.
1586 *
1587 * @param string|null $driver
1588 * @return mixed
1589 */
1590 public function driver($driver = null)
1591 {
1592 return $this->get($driver ?? $this->getDefaultDriver());
1593 }
1594
1595 /**
1596 * Attempt to get the log from the local cache.
1597 *
1598 * @param string $name
1599 * @return \Psr\Log\LoggerInterface
1600 */
1601 protected function get($name)
1602 {
1603 try {
1604 return $this->channels[$name] ?? with($this->resolve($name), function ($logger) use ($name) {
1605 return $this->channels[$name] = $this->tap($name, new Logger($logger, $this->app['events']));
1606 });
1607 } catch (Throwable $e) {
1608 return tap($this->createEmergencyLogger(), function ($logger) use ($e) {
1609 $logger->emergency('Unable to create configured logger. Using emergency logger.', [
1610 'exception' => $e,
1611 ]);
1612 });</pre>
1613
1614
1615 <div class="frame-file">
1616 Arguments
1617 </div>
1618 <div id="frame-code-args-9" class="code-block frame-args">
1619 <ol class="linenums"><li><pre class=sf-dump id=sf-dump-1956930125 data-indent-pad=" "><span class=sf-dump-const>null</span>
1620</pre><script>Sfdump("sf-dump-1956930125")</script>
1621</li></ol> </div>
1622
1623 <div class="frame-comments empty">
1624 </div>
1625
1626 </div>
1627 <div class="frame-code " id="frame-code-10">
1628 <div class="frame-file">
1629 <strong><span class="delimiter"></span>/<span class="delimiter">var</span>/<span class="delimiter">www</span>/<span class="delimiter">dev.api</span>/<span class="delimiter">vendor</span>/<span class="delimiter">laravel</span>/<span class="delimiter">framework</span>/<span class="delimiter">src</span>/<span class="delimiter">Illuminate</span>/<span class="delimiter">Log</span>/<span class="delimiter">LogManager.php</span></strong>
1630 </div>
1631 <pre id="frame-code-linenums-10" class="code-block linenums:481"> *
1632 * @return void
1633 */
1634 public function critical($message, array $context = [])
1635 {
1636 $this->driver()->critical($message, $context);
1637 }
1638
1639 /**
1640 * Runtime errors that do not require immediate action but should typically
1641 * be logged and monitored.
1642 *
1643 * @param string $message
1644 * @param array $context
1645 *
1646 * @return void
1647 */
1648 public function error($message, array $context = [])
1649 {
1650 $this->driver()->error($message, $context);
1651 }
1652
1653 /**
1654 * Exceptional occurrences that are not errors.
1655 *
1656 * Example: Use of deprecated APIs, poor use of an API, undesirable things
1657 * that are not necessarily wrong.
1658 *
1659 * @param string $message
1660 * @param array $context
1661 *
1662 * @return void
1663 */
1664 public function warning($message, array $context = [])
1665 {
1666 $this->driver()->warning($message, $context);
1667 }
1668
1669 /**
1670 * Normal but significant events.</pre>
1671
1672
1673
1674 <div class="frame-comments empty">
1675 </div>
1676
1677 </div>
1678 <div class="frame-code " id="frame-code-11">
1679 <div class="frame-file">
1680 <strong><span class="delimiter"></span>/<span class="delimiter">var</span>/<span class="delimiter">www</span>/<span class="delimiter">dev.api</span>/<span class="delimiter">vendor</span>/<span class="delimiter">laravel</span>/<span class="delimiter">framework</span>/<span class="delimiter">src</span>/<span class="delimiter">Illuminate</span>/<span class="delimiter">Foundation</span>/<span class="delimiter">Exceptions</span>/<span class="delimiter">Handler.php</span></strong>
1681 </div>
1682 <pre id="frame-code-linenums-11" class="code-block linenums:99"> */
1683 public function report(Exception $e)
1684 {
1685 if ($this->shouldntReport($e)) {
1686 return;
1687 }
1688
1689 if (is_callable($reportCallable = [$e, 'report'])) {
1690 return $this->container->call($reportCallable);
1691 }
1692
1693 try {
1694 $logger = $this->container->make(LoggerInterface::class);
1695 } catch (Exception $ex) {
1696 throw $e;
1697 }
1698
1699 $logger->error(
1700 $e->getMessage(),
1701 array_merge($this->context(), ['exception' => $e]
1702 ));
1703 }
1704
1705 /**
1706 * Determine if the exception should be reported.
1707 *
1708 * @param \Exception $e
1709 * @return bool
1710 */
1711 public function shouldReport(Exception $e)
1712 {
1713 return ! $this->shouldntReport($e);
1714 }
1715
1716 /**
1717 * Determine if the exception is in the "do not report" list.
1718 *
1719 * @param \Exception $e
1720 * @return bool
1721 */</pre>
1722
1723
1724 <div class="frame-file">
1725 Arguments
1726 </div>
1727 <div id="frame-code-args-11" class="code-block frame-args">
1728 <ol class="linenums"><li><pre class=sf-dump id=sf-dump-1736901081 data-indent-pad=" ">"<span class=sf-dump-str title="124 characters">The stream or file "/var/www/dev.api/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied</span>"
1729</pre><script>Sfdump("sf-dump-1736901081")</script>
1730</li><li><pre class=sf-dump id=sf-dump-653922182 data-indent-pad=" "><span class=sf-dump-note>array:1</span> [<samp>
1731 "<span class=sf-dump-key>exception</span>" => <span class=sf-dump-note>UnexpectedValueException</span> {<a class=sf-dump-ref>#1061</a><samp>
1732 #<span class=sf-dump-protected title="Protected property">message</span>: "<span class=sf-dump-str title="124 characters">The stream or file "/var/www/dev.api/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied</span>"
1733 #<span class=sf-dump-protected title="Protected property">code</span>: <span class=sf-dump-num>0</span>
1734 #<span class=sf-dump-protected title="Protected property">file</span>: "<span class=sf-dump-str title="/var/www/dev.api/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php
173577 characters"><span class="sf-dump-ellipsis sf-dump-ellipsis-path">/var/www/dev.api/vendor</span><span class=sf-dump-ellipsis>/monolog/monolog/</span>src/Monolog/Handler/StreamHandler.php</span>"
1736 #<span class=sf-dump-protected title="Protected property">line</span>: <span class=sf-dump-num>107</span>
1737 </samp>}
1738</samp>]
1739</pre><script>Sfdump("sf-dump-653922182")</script>
1740</li></ol> </div>
1741
1742 <div class="frame-comments empty">
1743 </div>
1744
1745 </div>
1746 <div class="frame-code " id="frame-code-12">
1747 <div class="frame-file">
1748 <strong><span class="delimiter"></span>/<span class="delimiter">var</span>/<span class="delimiter">www</span>/<span class="delimiter">dev.api</span>/<span class="delimiter">app</span>/<span class="delimiter">Exceptions</span>/<span class="delimiter">Handler.php</span></strong>
1749 </div>
1750 <pre id="frame-code-linenums-12" class="code-block linenums:25"> * A list of the inputs that are never flashed for validation exceptions.
1751 *
1752 * @var array
1753 */
1754 protected $dontFlash = [
1755 'password',
1756 'password_confirmation',
1757 ];
1758
1759 /**
1760 * Report or log an exception.
1761 *
1762 * This is a great spot to send exceptions to Sentry, Bugsnag, etc.
1763 *
1764 * @param Exception $exception
1765 * @return void
1766 */
1767 public function report(Exception $exception)
1768 {
1769 parent::report($exception);
1770 }
1771
1772 /**
1773 * Render an exception into an HTTP response.
1774 *
1775 * @param Request $request
1776 * @param Exception $exception
1777 * @return Response
1778 */
1779 public function render($request, Exception $exception)
1780 {
1781 return parent::render($request, $exception);
1782 }
1783}
1784 </pre>
1785
1786
1787 <div class="frame-file">
1788 Arguments
1789 </div>
1790 <div id="frame-code-args-12" class="code-block frame-args">
1791 <ol class="linenums"><li><pre class=sf-dump id=sf-dump-878559700 data-indent-pad=" "><span class=sf-dump-note>UnexpectedValueException</span> {<a class=sf-dump-ref>#1061</a><samp>
1792 #<span class=sf-dump-protected title="Protected property">message</span>: "<span class=sf-dump-str title="124 characters">The stream or file "/var/www/dev.api/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied</span>"
1793 #<span class=sf-dump-protected title="Protected property">code</span>: <span class=sf-dump-num>0</span>
1794 #<span class=sf-dump-protected title="Protected property">file</span>: "<span class=sf-dump-str title="/var/www/dev.api/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php
179577 characters"><span class="sf-dump-ellipsis sf-dump-ellipsis-path">/var/www/dev.api/vendor</span><span class=sf-dump-ellipsis>/monolog/monolog/</span>src/Monolog/Handler/StreamHandler.php</span>"
1796 #<span class=sf-dump-protected title="Protected property">line</span>: <span class=sf-dump-num>107</span>
1797</samp>}
1798</pre><script>Sfdump("sf-dump-878559700")</script>
1799</li></ol> </div>
1800
1801 <div class="frame-comments empty">
1802 </div>
1803
1804 </div>
1805 <div class="frame-code " id="frame-code-13">
1806 <div class="frame-file">
1807 <strong><span class="delimiter"></span>/<span class="delimiter">var</span>/<span class="delimiter">www</span>/<span class="delimiter">dev.api</span>/<span class="delimiter">vendor</span>/<span class="delimiter">laravel</span>/<span class="delimiter">framework</span>/<span class="delimiter">src</span>/<span class="delimiter">Illuminate</span>/<span class="delimiter">Foundation</span>/<span class="delimiter">Bootstrap</span>/<span class="delimiter">HandleExceptions.php</span></strong>
1808 </div>
1809 <pre id="frame-code-linenums-13" class="code-block linenums:73"> /**
1810 * Handle an uncaught exception from the application.
1811 *
1812 * Note: Most exceptions can be handled via the try / catch block in
1813 * the HTTP and Console kernels. But, fatal error exceptions must
1814 * be handled differently since they are not normal exceptions.
1815 *
1816 * @param \Throwable $e
1817 * @return void
1818 */
1819 public function handleException($e)
1820 {
1821 if (! $e instanceof Exception) {
1822 $e = new FatalThrowableError($e);
1823 }
1824
1825 try {
1826 self::$reservedMemory = null;
1827
1828 $this->getExceptionHandler()->report($e);
1829 } catch (Exception $e) {
1830 //
1831 }
1832
1833 if ($this->app->runningInConsole()) {
1834 $this->renderForConsole($e);
1835 } else {
1836 $this->renderHttpResponse($e);
1837 }
1838 }
1839
1840 /**
1841 * Render an exception to the console.
1842 *
1843 * @param \Exception $e
1844 * @return void
1845 */
1846 protected function renderForConsole(Exception $e)
1847 {
1848 $this->getExceptionHandler()->renderForConsole(new ConsoleOutput, $e);</pre>
1849
1850
1851 <div class="frame-file">
1852 Arguments
1853 </div>
1854 <div id="frame-code-args-13" class="code-block frame-args">
1855 <ol class="linenums"><li><pre class=sf-dump id=sf-dump-870314271 data-indent-pad=" "><span class=sf-dump-note>UnexpectedValueException</span> {<a class=sf-dump-ref>#1061</a><samp>
1856 #<span class=sf-dump-protected title="Protected property">message</span>: "<span class=sf-dump-str title="124 characters">The stream or file "/var/www/dev.api/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied</span>"
1857 #<span class=sf-dump-protected title="Protected property">code</span>: <span class=sf-dump-num>0</span>
1858 #<span class=sf-dump-protected title="Protected property">file</span>: "<span class=sf-dump-str title="/var/www/dev.api/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php
185977 characters"><span class="sf-dump-ellipsis sf-dump-ellipsis-path">/var/www/dev.api/vendor</span><span class=sf-dump-ellipsis>/monolog/monolog/</span>src/Monolog/Handler/StreamHandler.php</span>"
1860 #<span class=sf-dump-protected title="Protected property">line</span>: <span class=sf-dump-num>107</span>
1861</samp>}
1862</pre><script>Sfdump("sf-dump-870314271")</script>
1863</li></ol> </div>
1864
1865 <div class="frame-comments empty">
1866 </div>
1867
1868 </div>
1869 <div class="frame-code " id="frame-code-14">
1870 <div class="frame-file">
1871 <strong><span class="delimiter">[internal]</span></strong>
1872 </div>
1873
1874 <div class="frame-file">
1875 Arguments
1876 </div>
1877 <div id="frame-code-args-14" class="code-block frame-args">
1878 <ol class="linenums"><li><pre class=sf-dump id=sf-dump-1978539919 data-indent-pad=" "><span class=sf-dump-note>UnexpectedValueException</span> {<a class=sf-dump-ref>#1061</a><samp>
1879 #<span class=sf-dump-protected title="Protected property">message</span>: "<span class=sf-dump-str title="124 characters">The stream or file "/var/www/dev.api/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied</span>"
1880 #<span class=sf-dump-protected title="Protected property">code</span>: <span class=sf-dump-num>0</span>
1881 #<span class=sf-dump-protected title="Protected property">file</span>: "<span class=sf-dump-str title="/var/www/dev.api/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php
188277 characters"><span class="sf-dump-ellipsis sf-dump-ellipsis-path">/var/www/dev.api/vendor</span><span class=sf-dump-ellipsis>/monolog/monolog/</span>src/Monolog/Handler/StreamHandler.php</span>"
1883 #<span class=sf-dump-protected title="Protected property">line</span>: <span class=sf-dump-num>107</span>
1884</samp>}
1885</pre><script>Sfdump("sf-dump-1978539919")</script>
1886</li></ol> </div>
1887
1888 <div class="frame-comments empty">
1889 </div>
1890
1891 </div>
1892 </div>
1893<div class="details">
1894 <h2 class="details-heading">Environment & details:</h2>
1895
1896 <div class="data-table-container" id="data-tables">
1897 <div class="data-table" id="sg-get-data">
1898 <label class="empty">GET Data</label>
1899 <span class="empty">empty</span>
1900 </div>
1901 <div class="data-table" id="sg-post-data">
1902 <label>POST Data</label>
1903 <table class="data-table">
1904 <thead>
1905 <tr>
1906 <td class="data-table-k">Key</td>
1907 <td class="data-table-v">Value</td>
1908 </tr>
1909 </thead>
1910 <tr>
1911 <td>password</td>
1912 <td><pre class=sf-dump id=sf-dump-1527437854 data-indent-pad=" ">"<span class=sf-dump-str title="7 characters">PassAdm</span>"
1913</pre><script>Sfdump("sf-dump-1527437854")</script>
1914</td>
1915 </tr>
1916 <tr>
1917 <td>grant_type</td>
1918 <td><pre class=sf-dump id=sf-dump-121655573 data-indent-pad=" ">"<span class=sf-dump-str title="8 characters">password</span>"
1919</pre><script>Sfdump("sf-dump-121655573")</script>
1920</td>
1921 </tr>
1922 <tr>
1923 <td>client_secret</td>
1924 <td><pre class=sf-dump id=sf-dump-1858114268 data-indent-pad=" ">"<span class=sf-dump-str title="40 characters">BwSfG62wEnZfn8VB3VoSduwrwPn4pYV1OOQfDgzm</span>"
1925</pre><script>Sfdump("sf-dump-1858114268")</script>
1926</td>
1927 </tr>
1928 <tr>
1929 <td>client_id</td>
1930 <td><pre class=sf-dump id=sf-dump-1081017946 data-indent-pad=" ">"<span class=sf-dump-str>1</span>"
1931</pre><script>Sfdump("sf-dump-1081017946")</script>
1932</td>
1933 </tr>
1934 <tr>
1935 <td>username</td>
1936 <td><pre class=sf-dump id=sf-dump-1928550990 data-indent-pad=" ">"<span class=sf-dump-str title="21 characters">admin000@scanblox.com</span>"
1937</pre><script>Sfdump("sf-dump-1928550990")</script>
1938</td>
1939 </tr>
1940 </table>
1941 </div>
1942 <div class="data-table" id="sg-files">
1943 <label class="empty">Files</label>
1944 <span class="empty">empty</span>
1945 </div>
1946 <div class="data-table" id="sg-cookies">
1947 <label class="empty">Cookies</label>
1948 <span class="empty">empty</span>
1949 </div>
1950 <div class="data-table" id="sg-session">
1951 <label class="empty">Session</label>
1952 <span class="empty">empty</span>
1953 </div>
1954 <div class="data-table" id="sg-serverrequest-data">
1955 <label>Server/Request Data</label>
1956 <table class="data-table">
1957 <thead>
1958 <tr>
1959 <td class="data-table-k">Key</td>
1960 <td class="data-table-v">Value</td>
1961 </tr>
1962 </thead>
1963 <tr>
1964 <td>USER</td>
1965 <td><pre class=sf-dump id=sf-dump-1570801774 data-indent-pad=" ">"<span class=sf-dump-str title="8 characters">www-data</span>"
1966</pre><script>Sfdump("sf-dump-1570801774")</script>
1967</td>
1968 </tr>
1969 <tr>
1970 <td>HOME</td>
1971 <td><pre class=sf-dump id=sf-dump-540815662 data-indent-pad=" ">"<span class=sf-dump-str title="8 characters">/var/www</span>"
1972</pre><script>Sfdump("sf-dump-540815662")</script>
1973</td>
1974 </tr>
1975 <tr>
1976 <td>HTTP_USER_AGENT</td>
1977 <td><pre class=sf-dump id=sf-dump-535305865 data-indent-pad=" ">"<span class=sf-dump-str title="13 characters">okhttp/3.11.0</span>"
1978</pre><script>Sfdump("sf-dump-535305865")</script>
1979</td>
1980 </tr>
1981 <tr>
1982 <td>HTTP_ACCEPT_ENCODING</td>
1983 <td><pre class=sf-dump id=sf-dump-906590609 data-indent-pad=" ">"<span class=sf-dump-str title="4 characters">gzip</span>"
1984</pre><script>Sfdump("sf-dump-906590609")</script>
1985</td>
1986 </tr>
1987 <tr>
1988 <td>HTTP_CONNECTION</td>
1989 <td><pre class=sf-dump id=sf-dump-766906971 data-indent-pad=" ">"<span class=sf-dump-str title="10 characters">Keep-Alive</span>"
1990</pre><script>Sfdump("sf-dump-766906971")</script>
1991</td>
1992 </tr>
1993 <tr>
1994 <td>HTTP_HOST</td>
1995 <td><pre class=sf-dump id=sf-dump-1489111314 data-indent-pad=" ">"<span class=sf-dump-str title="20 characters">dev.api.scanblox.com</span>"
1996</pre><script>Sfdump("sf-dump-1489111314")</script>
1997</td>
1998 </tr>
1999 <tr>
2000 <td>HTTP_CONTENT_LENGTH</td>
2001 <td><pre class=sf-dump id=sf-dump-1623164544 data-indent-pad=" ">"<span class=sf-dump-str title="3 characters">136</span>"
2002</pre><script>Sfdump("sf-dump-1623164544")</script>
2003</td>
2004 </tr>
2005 <tr>
2006 <td>HTTP_CONTENT_TYPE</td>
2007 <td><pre class=sf-dump id=sf-dump-2049898893 data-indent-pad=" ">"<span class=sf-dump-str title="48 characters">application/x-www-form-urlencoded; charset=utf-8</span>"
2008</pre><script>Sfdump("sf-dump-2049898893")</script>
2009</td>
2010 </tr>
2011 <tr>
2012 <td>REDIRECT_STATUS</td>
2013 <td><pre class=sf-dump id=sf-dump-1880675720 data-indent-pad=" ">"<span class=sf-dump-str title="3 characters">200</span>"
2014</pre><script>Sfdump("sf-dump-1880675720")</script>
2015</td>
2016 </tr>
2017 <tr>
2018 <td>SERVER_NAME</td>
2019 <td><pre class=sf-dump id=sf-dump-1400665188 data-indent-pad=" ">"<span class=sf-dump-str title="20 characters">dev.api.scanblox.com</span>"
2020</pre><script>Sfdump("sf-dump-1400665188")</script>
2021</td>
2022 </tr>
2023 <tr>
2024 <td>SERVER_PORT</td>
2025 <td><pre class=sf-dump id=sf-dump-335033861 data-indent-pad=" ">"<span class=sf-dump-str title="2 characters">80</span>"
2026</pre><script>Sfdump("sf-dump-335033861")</script>
2027</td>
2028 </tr>
2029 <tr>
2030 <td>SERVER_ADDR</td>
2031 <td><pre class=sf-dump id=sf-dump-935599105 data-indent-pad=" ">"<span class=sf-dump-str title="11 characters">172.31.9.22</span>"
2032</pre><script>Sfdump("sf-dump-935599105")</script>
2033</td>
2034 </tr>
2035 <tr>
2036 <td>REMOTE_PORT</td>
2037 <td><pre class=sf-dump id=sf-dump-1119145194 data-indent-pad=" ">"<span class=sf-dump-str title="4 characters">7662</span>"
2038</pre><script>Sfdump("sf-dump-1119145194")</script>
2039</td>
2040 </tr>
2041 <tr>
2042 <td>REMOTE_ADDR</td>
2043 <td><pre class=sf-dump id=sf-dump-671835092 data-indent-pad=" ">"<span class=sf-dump-str title="14 characters">185.216.32.252</span>"
2044</pre><script>Sfdump("sf-dump-671835092")</script>
2045</td>
2046 </tr>
2047 <tr>
2048 <td>SERVER_SOFTWARE</td>
2049 <td><pre class=sf-dump id=sf-dump-1169807593 data-indent-pad=" ">"<span class=sf-dump-str title="12 characters">nginx/1.14.1</span>"
2050</pre><script>Sfdump("sf-dump-1169807593")</script>
2051</td>
2052 </tr>
2053 <tr>
2054 <td>GATEWAY_INTERFACE</td>
2055 <td><pre class=sf-dump id=sf-dump-956814255 data-indent-pad=" ">"<span class=sf-dump-str title="7 characters">CGI/1.1</span>"
2056</pre><script>Sfdump("sf-dump-956814255")</script>
2057</td>
2058 </tr>
2059 <tr>
2060 <td>REQUEST_SCHEME</td>
2061 <td><pre class=sf-dump id=sf-dump-327870950 data-indent-pad=" ">"<span class=sf-dump-str title="4 characters">http</span>"
2062</pre><script>Sfdump("sf-dump-327870950")</script>
2063</td>
2064 </tr>
2065 <tr>
2066 <td>SERVER_PROTOCOL</td>
2067 <td><pre class=sf-dump id=sf-dump-1579830934 data-indent-pad=" ">"<span class=sf-dump-str title="8 characters">HTTP/1.1</span>"
2068</pre><script>Sfdump("sf-dump-1579830934")</script>
2069</td>
2070 </tr>
2071 <tr>
2072 <td>DOCUMENT_ROOT</td>
2073 <td><pre class=sf-dump id=sf-dump-1861860351 data-indent-pad=" ">"<span class=sf-dump-str title="23 characters">/var/www/dev.api/public</span>"
2074</pre><script>Sfdump("sf-dump-1861860351")</script>
2075</td>
2076 </tr>
2077 <tr>
2078 <td>DOCUMENT_URI</td>
2079 <td><pre class=sf-dump id=sf-dump-2097185528 data-indent-pad=" ">"<span class=sf-dump-str title="10 characters">/index.php</span>"
2080</pre><script>Sfdump("sf-dump-2097185528")</script>
2081</td>
2082 </tr>
2083 <tr>
2084 <td>REQUEST_URI</td>
2085 <td><pre class=sf-dump id=sf-dump-1914960601 data-indent-pad=" ">"<span class=sf-dump-str title="12 characters">/oauth/token</span>"
2086</pre><script>Sfdump("sf-dump-1914960601")</script>
2087</td>
2088 </tr>
2089 <tr>
2090 <td>SCRIPT_NAME</td>
2091 <td><pre class=sf-dump id=sf-dump-474308344 data-indent-pad=" ">"<span class=sf-dump-str title="10 characters">/index.php</span>"
2092</pre><script>Sfdump("sf-dump-474308344")</script>
2093</td>
2094 </tr>
2095 <tr>
2096 <td>CONTENT_LENGTH</td>
2097 <td><pre class=sf-dump id=sf-dump-434947052 data-indent-pad=" ">"<span class=sf-dump-str title="3 characters">136</span>"
2098</pre><script>Sfdump("sf-dump-434947052")</script>
2099</td>
2100 </tr>
2101 <tr>
2102 <td>CONTENT_TYPE</td>
2103 <td><pre class=sf-dump id=sf-dump-1125773697 data-indent-pad=" ">"<span class=sf-dump-str title="48 characters">application/x-www-form-urlencoded; charset=utf-8</span>"
2104</pre><script>Sfdump("sf-dump-1125773697")</script>
2105</td>
2106 </tr>
2107 <tr>
2108 <td>REQUEST_METHOD</td>
2109 <td><pre class=sf-dump id=sf-dump-1247645428 data-indent-pad=" ">"<span class=sf-dump-str title="4 characters">POST</span>"
2110</pre><script>Sfdump("sf-dump-1247645428")</script>
2111</td>
2112 </tr>
2113 <tr>
2114 <td>QUERY_STRING</td>
2115 <td><pre class=sf-dump id=sf-dump-1069126748 data-indent-pad=" ">""
2116</pre><script>Sfdump("sf-dump-1069126748")</script>
2117</td>
2118 </tr>
2119 <tr>
2120 <td>SCRIPT_FILENAME</td>
2121 <td><pre class=sf-dump id=sf-dump-400381435 data-indent-pad=" ">"<span class=sf-dump-str title="33 characters">/var/www/dev.api/public/index.php</span>"
2122</pre><script>Sfdump("sf-dump-400381435")</script>
2123</td>
2124 </tr>
2125 <tr>
2126 <td>PATH_INFO</td>
2127 <td><pre class=sf-dump id=sf-dump-1083552546 data-indent-pad=" ">""
2128</pre><script>Sfdump("sf-dump-1083552546")</script>
2129</td>
2130 </tr>
2131 <tr>
2132 <td>FCGI_ROLE</td>
2133 <td><pre class=sf-dump id=sf-dump-207694448 data-indent-pad=" ">"<span class=sf-dump-str title="9 characters">RESPONDER</span>"
2134</pre><script>Sfdump("sf-dump-207694448")</script>
2135</td>
2136 </tr>
2137 <tr>
2138 <td>PHP_SELF</td>
2139 <td><pre class=sf-dump id=sf-dump-836092659 data-indent-pad=" ">"<span class=sf-dump-str title="10 characters">/index.php</span>"
2140</pre><script>Sfdump("sf-dump-836092659")</script>
2141</td>
2142 </tr>
2143 <tr>
2144 <td>REQUEST_TIME_FLOAT</td>
2145 <td><pre class=sf-dump id=sf-dump-411669717 data-indent-pad=" "><span class=sf-dump-num>1567526655.8287</span>
2146</pre><script>Sfdump("sf-dump-411669717")</script>
2147</td>
2148 </tr>
2149 <tr>
2150 <td>REQUEST_TIME</td>
2151 <td><pre class=sf-dump id=sf-dump-704079090 data-indent-pad=" "><span class=sf-dump-num>1567526655</span>
2152</pre><script>Sfdump("sf-dump-704079090")</script>
2153</td>
2154 </tr>
2155 </table>
2156 </div>
2157 <div class="data-table" id="sg-environment-variables">
2158 <label class="empty">Environment Variables</label>
2159 <span class="empty">empty</span>
2160 </div>
2161 </div>
2162
2163 <div class="data-table-container" id="handlers">
2164 <label>Registered Handlers</label>
2165 <div class="handler active">
2166 0. Whoops\Handler\PrettyPageHandler </div>
2167 </div>
2168
2169</div>
2170</div>
2171 </div>
2172 </div>
2173
2174 <script>var r=null;window.PR_SHOULD_USE_CONTINUATION=!0;
2175(function(){function O(a){function i(d){var a=d.charCodeAt(0);if(a!==92)return a;var f=d.charAt(1);return(a=s[f])?a:"0"<=f&&f<="7"?parseInt(d.substring(1),8):f==="u"||f==="x"?parseInt(d.substring(2),16):d.charCodeAt(1)}function g(d){if(d<32)return(d<16?"\\x0":"\\x")+d.toString(16);d=String.fromCharCode(d);return d==="\\"||d==="-"||d==="]"||d==="^"?"\\"+d:d}function j(d){var a=d.substring(1,d.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),d=[],f=
2176a[0]==="^",b=["["];f&&b.push("^");for(var f=f?1:0,c=a.length;f<c;++f){var h=a[f];if(/\\[bdsw]/i.test(h))b.push(h);else{var h=i(h),e;f+2<c&&"-"===a[f+1]?(e=i(a[f+2]),f+=2):e=h;d.push([h,e]);e<65||h>122||(e<65||h>90||d.push([Math.max(65,h)|32,Math.min(e,90)|32]),e<97||h>122||d.push([Math.max(97,h)&-33,Math.min(e,122)&-33]))}}d.sort(function(d,a){return d[0]-a[0]||a[1]-d[1]});a=[];c=[];for(f=0;f<d.length;++f)h=d[f],h[0]<=c[1]+1?c[1]=Math.max(c[1],h[1]):a.push(c=h);for(f=0;f<a.length;++f)h=a[f],b.push(g(h[0])),
2177h[1]>h[0]&&(h[1]+1>h[0]&&b.push("-"),b.push(g(h[1])));b.push("]");return b.join("")}function t(d){for(var a=d.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=a.length,i=[],c=0,h=0;c<b;++c){var e=a[c];e==="("?++h:"\\"===e.charAt(0)&&(e=+e.substring(1))&&(e<=h?i[e]=-1:a[c]=g(e))}for(c=1;c<i.length;++c)-1===i[c]&&(i[c]=++z);for(h=c=0;c<b;++c)e=a[c],e==="("?(++h,i[h]||(a[c]="(?:")):"\\"===e.charAt(0)&&(e=+e.substring(1))&&e<=h&&
2178(a[c]="\\"+i[e]);for(c=0;c<b;++c)"^"===a[c]&&"^"!==a[c+1]&&(a[c]="");if(d.ignoreCase&&w)for(c=0;c<b;++c)e=a[c],d=e.charAt(0),e.length>=2&&d==="["?a[c]=j(e):d!=="\\"&&(a[c]=e.replace(/[A-Za-z]/g,function(d){d=d.charCodeAt(0);return"["+String.fromCharCode(d&-33,d|32)+"]"}));return a.join("")}for(var z=0,w=!1,k=!1,m=0,b=a.length;m<b;++m){var o=a[m];if(o.ignoreCase)k=!0;else if(/[a-z]/i.test(o.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){w=!0;k=!1;break}}for(var s={b:8,t:9,n:10,v:11,
2179f:12,r:13},q=[],m=0,b=a.length;m<b;++m){o=a[m];if(o.global||o.multiline)throw Error(""+o);q.push("(?:"+t(o)+")")}return RegExp(q.join("|"),k?"gi":"g")}function P(a,i){function g(a){switch(a.nodeType){case 1:if(j.test(a.className))break;for(var b=a.firstChild;b;b=b.nextSibling)g(b);b=a.nodeName.toLowerCase();if("br"===b||"li"===b)t[k]="\n",w[k<<1]=z++,w[k++<<1|1]=a;break;case 3:case 4:b=a.nodeValue,b.length&&(b=i?b.replace(/\r\n?/g,"\n"):b.replace(/[\t\n\r ]+/g," "),t[k]=b,w[k<<1]=z,z+=b.length,w[k++<<
21801|1]=a)}}var j=/(?:^|\s)nocode(?:\s|$)/,t=[],z=0,w=[],k=0;g(a);return{a:t.join("").replace(/\n$/,""),d:w}}function E(a,i,g,j){i&&(a={a:i,e:a},g(a),j.push.apply(j,a.g))}function x(a,i){function g(a){for(var k=a.e,m=[k,"pln"],b=0,o=a.a.match(t)||[],s={},q=0,d=o.length;q<d;++q){var v=o[q],f=s[v],u=void 0,c;if(typeof f==="string")c=!1;else{var h=j[v.charAt(0)];if(h)u=v.match(h[1]),f=h[0];else{for(c=0;c<z;++c)if(h=i[c],u=v.match(h[1])){f=h[0];break}u||(f="pln")}if((c=f.length>=5&&"lang-"===f.substring(0,
21815))&&!(u&&typeof u[1]==="string"))c=!1,f="src";c||(s[v]=f)}h=b;b+=v.length;if(c){c=u[1];var e=v.indexOf(c),p=e+c.length;u[2]&&(p=v.length-u[2].length,e=p-c.length);f=f.substring(5);E(k+h,v.substring(0,e),g,m);E(k+h+e,c,F(f,c),m);E(k+h+p,v.substring(p),g,m)}else m.push(k+h,f)}a.g=m}var j={},t;(function(){for(var g=a.concat(i),k=[],m={},b=0,o=g.length;b<o;++b){var s=g[b],q=s[3];if(q)for(var d=q.length;--d>=0;)j[q.charAt(d)]=s;s=s[1];q=""+s;m.hasOwnProperty(q)||(k.push(s),m[q]=r)}k.push(/[\S\s]/);t=
2182O(k)})();var z=i.length;return g}function l(a){var i=[],g=[];a.tripleQuotedStrings?i.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,r,"'\""]):a.multiLineStrings?i.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,r,"'\"`"]):i.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,r,"\"'"]);a.verbatimStrings&&
2183g.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,r]);var j=a.hashComments;j&&(a.cStyleComments?(j>1?i.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,r,"#"]):i.push(["com",/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\n\r]*)/,r,"#"]),g.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,r])):i.push(["com",/^#[^\n\r]*/,r,"#"]));a.cStyleComments&&(g.push(["com",/^\/\/[^\n\r]*/,r]),g.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,
2184r]));a.regexLiterals&&g.push(["lang-regex",/^(?:^^\.?|[+-]|[!=]={0,2}|#|%=?|&&?=?|\(|\*=?|[+-]=|->|\/=?|::?|<<?=?|>{1,3}=?|[,;?@[{~]|\^\^?=?|\|\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(j=a.types)&&g.push(["typ",j]);a=(""+a.keywords).replace(/^ | $/g,"");a.length&&g.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),r]);i.push(["pln",/^\s+/,r," \r\n\t\u00a0"]);g.push(["lit",
2185/^@[$_a-z][\w$@]*/i,r],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,r],["pln",/^[$_a-z][\w$@]*/i,r],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,r,"0123456789"],["pln",/^\\[\S\s]?/,r],["pun",/^.[^\s\w"$'./@\\`]*/,r]);return x(i,g)}function G(a,i,g){function j(a){switch(a.nodeType){case 1:if(z.test(a.className))break;if("br"===a.nodeName)t(a),a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)j(a);break;case 3:case 4:if(g){var b=
2186a.nodeValue,f=b.match(n);if(f){var i=b.substring(0,f.index);a.nodeValue=i;(b=b.substring(f.index+f[0].length))&&a.parentNode.insertBefore(k.createTextNode(b),a.nextSibling);t(a);i||a.parentNode.removeChild(a)}}}}function t(a){function i(a,b){var d=b?a.cloneNode(!1):a,e=a.parentNode;if(e){var e=i(e,1),f=a.nextSibling;e.appendChild(d);for(var g=f;g;g=f)f=g.nextSibling,e.appendChild(g)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=i(a.nextSibling,0),f;(f=a.parentNode)&&f.nodeType===
21871;)a=f;b.push(a)}for(var z=/(?:^|\s)nocode(?:\s|$)/,n=/\r\n?|\n/,k=a.ownerDocument,m=k.createElement("li");a.firstChild;)m.appendChild(a.firstChild);for(var b=[m],o=0;o<b.length;++o)j(b[o]);i===(i|0)&&b[0].setAttribute("value",i);var s=k.createElement("ol");s.className="linenums";for(var i=Math.max(0,i-1|0)||0,o=0,q=b.length;o<q;++o)m=b[o],m.className="L"+(o+i)%10,m.firstChild||m.appendChild(k.createTextNode("\u00a0")),s.appendChild(m);a.appendChild(s)}function n(a,i){for(var g=i.length;--g>=0;){var j=
2188i[g];A.hasOwnProperty(j)?C.console&&console.warn("cannot override language handler %s",j):A[j]=a}}function F(a,i){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(i)?"default-markup":"default-code";return A[a]}function H(a){var i=a.h;try{var g=P(a.c,a.i),j=g.a;a.a=j;a.d=g.d;a.e=0;F(i,j)(a);var t=/\bMSIE\s(\d+)/.exec(navigator.userAgent),t=t&&+t[1]<=8,i=/\n/g,n=a.a,w=n.length,g=0,k=a.d,m=k.length,j=0,b=a.g,o=b.length,s=0;b[o]=w;var q,d;for(d=q=0;d<o;)b[d]!==b[d+2]?(b[q++]=b[d++],b[q++]=b[d++]):d+=2;o=q;
2189for(d=q=0;d<o;){for(var v=b[d],f=b[d+1],u=d+2;u+2<=o&&b[u+1]===f;)u+=2;b[q++]=v;b[q++]=f;d=u}b.length=q;var c=a.c,h;if(c)h=c.style.display,c.style.display="none";try{for(;j<m;){var e=k[j+2]||w,p=b[s+2]||w,u=Math.min(e,p),l=k[j+1],D;if(l.nodeType!==1&&(D=n.substring(g,u))){t&&(D=D.replace(i,"\r"));l.nodeValue=D;var y=l.ownerDocument,x=y.createElement("span");x.className=b[s+1];var B=l.parentNode;B.replaceChild(x,l);x.appendChild(l);g<e&&(k[j+1]=l=y.createTextNode(n.substring(u,e)),B.insertBefore(l,
2190x.nextSibling))}g=u;g>=e&&(j+=2);g>=p&&(s+=2)}}finally{if(c)c.style.display=h}}catch(A){C.console&&console.log(A&&A.stack?A.stack:A)}}var C=window,y=["break,continue,do,else,for,if,return,while"],B=[[y,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],I=[B,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],
2191J=[B,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],K=[J,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],B=[B,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],
2192L=[y,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],M=[y,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],y=[y,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],N=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/,
2193Q=/\S/,R=l({keywords:[I,K,B,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+L,M,y],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};n(R,["default-code"]);n(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",
2194/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);n(x([["pln",/^\s+/,r," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,r,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],
2195["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);n(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);n(l({keywords:I,hashComments:!0,cStyleComments:!0,types:N}),["c","cc","cpp","cxx","cyc","m"]);n(l({keywords:"null,true,false"}),["json"]);n(l({keywords:K,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:N}),
2196["cs"]);n(l({keywords:J,cStyleComments:!0}),["java"]);n(l({keywords:y,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);n(l({keywords:L,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py"]);n(l({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);n(l({keywords:M,hashComments:!0,
2197multiLineStrings:!0,regexLiterals:!0}),["rb"]);n(l({keywords:B,cStyleComments:!0,regexLiterals:!0}),["js"]);n(l({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);n(x([],[["str",/^[\S\s]+/]]),["regex"]);var S=C.PR={createSimpleLexer:x,registerLangHandler:n,sourceDecorator:l,
2198PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ",prettyPrintOne:C.prettyPrintOne=function(a,i,g){var j=document.createElement("pre");j.innerHTML=a;g&&G(j,g,!0);H({h:i,j:g,c:j,i:1});return j.innerHTML},prettyPrint:C.prettyPrint=function(a){function i(){var u;for(var g=C.PR_SHOULD_USE_CONTINUATION?k.now()+250:Infinity;m<j.length&&
2199k.now()<g;m++){var c=j[m],h=c.className;if(s.test(h)&&!q.test(h)){for(var e=!1,p=c.parentNode;p;p=p.parentNode)if(f.test(p.tagName)&&p.className&&s.test(p.className)){e=!0;break}if(!e){c.className+=" prettyprinted";var h=h.match(o),n;if(e=!h){for(var e=c,p=void 0,l=e.firstChild;l;l=l.nextSibling)var t=l.nodeType,p=t===1?p?e:l:t===3?Q.test(l.nodeValue)?e:p:p;e=(n=p===e?void 0:p)&&v.test(n.tagName)}e&&(h=n.className.match(o));h&&(h=h[1]);u=d.test(c.tagName)?1:(e=(e=c.currentStyle)?e.whiteSpace:document.defaultView&&
2200document.defaultView.getComputedStyle?document.defaultView.getComputedStyle(c,r).getPropertyValue("white-space"):0)&&"pre"===e.substring(0,3),e=u;(p=(p=c.className.match(/\blinenums\b(?::(\d+))?/))?p[1]&&p[1].length?+p[1]:!0:!1)&&G(c,p,e);b={h:h,c:c,j:p,i:e};H(b)}}}m<j.length?setTimeout(i,250):a&&a()}for(var g=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],j=[],n=0;n<g.length;++n)for(var l=0,w=g[n].length;l<w;++l)j.push(g[n][l]);var g=
2201r,k=Date;k.now||(k={now:function(){return+new Date}});var m=0,b,o=/\blang(?:uage)?-([\w.]+)(?!\S)/,s=/\bprettyprint\b/,q=/\bprettyprinted\b/,d=/pre|xmp/i,v=/^code$/i,f=/^(?:pre|code|xmp)$/i;i()}};typeof define==="function"&&define.amd&&define("google-code-prettify",[],function(){return S})})();
2202</script>
2203 <script>/* Zepto v1.1.3 - zepto event ajax form ie - zeptojs.com/license */
2204var Zepto=function(){function L(t){return null==t?String(t):j[T.call(t)]||"object"}function Z(t){return"function"==L(t)}function $(t){return null!=t&&t==t.window}function _(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function D(t){return"object"==L(t)}function R(t){return D(t)&&!$(t)&&Object.getPrototypeOf(t)==Object.prototype}function M(t){return"number"==typeof t.length}function k(t){return s.call(t,function(t){return null!=t})}function z(t){return t.length>0?n.fn.concat.apply([],t):t}function F(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function q(t){return t in f?f[t]:f[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function H(t,e){return"number"!=typeof e||c[F(t)]?e:e+"px"}function I(t){var e,n;return u[t]||(e=a.createElement(t),a.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),u[t]=n),u[t]}function V(t){return"children"in t?o.call(t.children):n.map(t.childNodes,function(t){return 1==t.nodeType?t:void 0})}function U(n,i,r){for(e in i)r&&(R(i[e])||A(i[e]))?(R(i[e])&&!R(n[e])&&(n[e]={}),A(i[e])&&!A(n[e])&&(n[e]=[]),U(n[e],i[e],r)):i[e]!==t&&(n[e]=i[e])}function B(t,e){return null==e?n(t):n(t).filter(e)}function J(t,e,n,i){return Z(e)?e.call(t,n,i):e}function X(t,e,n){null==n?t.removeAttribute(e):t.setAttribute(e,n)}function W(e,n){var i=e.className,r=i&&i.baseVal!==t;return n===t?r?i.baseVal:i:void(r?i.baseVal=n:e.className=n)}function Y(t){var e;try{return t?"true"==t||("false"==t?!1:"null"==t?null:/^0/.test(t)||isNaN(e=Number(t))?/^[\[\{]/.test(t)?n.parseJSON(t):t:e):t}catch(i){return t}}function G(t,e){e(t);for(var n in t.childNodes)G(t.childNodes[n],e)}var t,e,n,i,C,N,r=[],o=r.slice,s=r.filter,a=window.document,u={},f={},c={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},l=/^\s*<(\w+|!)[^>]*>/,h=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,p=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,d=/^(?:body|html)$/i,m=/([A-Z])/g,g=["val","css","html","text","data","width","height","offset"],v=["after","prepend","before","append"],y=a.createElement("table"),x=a.createElement("tr"),b={tr:a.createElement("tbody"),tbody:y,thead:y,tfoot:y,td:x,th:x,"*":a.createElement("div")},w=/complete|loaded|interactive/,E=/^[\w-]*$/,j={},T=j.toString,S={},O=a.createElement("div"),P={tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},A=Array.isArray||function(t){return t instanceof Array};return S.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var i,r=t.parentNode,o=!r;return o&&(r=O).appendChild(t),i=~S.qsa(r,e).indexOf(t),o&&O.removeChild(t),i},C=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},N=function(t){return s.call(t,function(e,n){return t.indexOf(e)==n})},S.fragment=function(e,i,r){var s,u,f;return h.test(e)&&(s=n(a.createElement(RegExp.$1))),s||(e.replace&&(e=e.replace(p,"<$1></$2>")),i===t&&(i=l.test(e)&&RegExp.$1),i in b||(i="*"),f=b[i],f.innerHTML=""+e,s=n.each(o.call(f.childNodes),function(){f.removeChild(this)})),R(r)&&(u=n(s),n.each(r,function(t,e){g.indexOf(t)>-1?u[t](e):u.attr(t,e)})),s},S.Z=function(t,e){return t=t||[],t.__proto__=n.fn,t.selector=e||"",t},S.isZ=function(t){return t instanceof S.Z},S.init=function(e,i){var r;if(!e)return S.Z();if("string"==typeof e)if(e=e.trim(),"<"==e[0]&&l.test(e))r=S.fragment(e,RegExp.$1,i),e=null;else{if(i!==t)return n(i).find(e);r=S.qsa(a,e)}else{if(Z(e))return n(a).ready(e);if(S.isZ(e))return e;if(A(e))r=k(e);else if(D(e))r=[e],e=null;else if(l.test(e))r=S.fragment(e.trim(),RegExp.$1,i),e=null;else{if(i!==t)return n(i).find(e);r=S.qsa(a,e)}}return S.Z(r,e)},n=function(t,e){return S.init(t,e)},n.extend=function(t){var e,n=o.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach(function(n){U(t,n,e)}),t},S.qsa=function(t,e){var n,i="#"==e[0],r=!i&&"."==e[0],s=i||r?e.slice(1):e,a=E.test(s);return _(t)&&a&&i?(n=t.getElementById(s))?[n]:[]:1!==t.nodeType&&9!==t.nodeType?[]:o.call(a&&!i?r?t.getElementsByClassName(s):t.getElementsByTagName(e):t.querySelectorAll(e))},n.contains=function(t,e){return t!==e&&t.contains(e)},n.type=L,n.isFunction=Z,n.isWindow=$,n.isArray=A,n.isPlainObject=R,n.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},n.inArray=function(t,e,n){return r.indexOf.call(e,t,n)},n.camelCase=C,n.trim=function(t){return null==t?"":String.prototype.trim.call(t)},n.uuid=0,n.support={},n.expr={},n.map=function(t,e){var n,r,o,i=[];if(M(t))for(r=0;r<t.length;r++)n=e(t[r],r),null!=n&&i.push(n);else for(o in t)n=e(t[o],o),null!=n&&i.push(n);return z(i)},n.each=function(t,e){var n,i;if(M(t)){for(n=0;n<t.length;n++)if(e.call(t[n],n,t[n])===!1)return t}else for(i in t)if(e.call(t[i],i,t[i])===!1)return t;return t},n.grep=function(t,e){return s.call(t,e)},window.JSON&&(n.parseJSON=JSON.parse),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(t,e){j["[object "+e+"]"]=e.toLowerCase()}),n.fn={forEach:r.forEach,reduce:r.reduce,push:r.push,sort:r.sort,indexOf:r.indexOf,concat:r.concat,map:function(t){return n(n.map(this,function(e,n){return t.call(e,n,e)}))},slice:function(){return n(o.apply(this,arguments))},ready:function(t){return w.test(a.readyState)&&a.body?t(n):a.addEventListener("DOMContentLoaded",function(){t(n)},!1),this},get:function(e){return e===t?o.call(this):this[e>=0?e:e+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return r.every.call(this,function(e,n){return t.call(e,n,e)!==!1}),this},filter:function(t){return Z(t)?this.not(this.not(t)):n(s.call(this,function(e){return S.matches(e,t)}))},add:function(t,e){return n(N(this.concat(n(t,e))))},is:function(t){return this.length>0&&S.matches(this[0],t)},not:function(e){var i=[];if(Z(e)&&e.call!==t)this.each(function(t){e.call(this,t)||i.push(this)});else{var r="string"==typeof e?this.filter(e):M(e)&&Z(e.item)?o.call(e):n(e);this.forEach(function(t){r.indexOf(t)<0&&i.push(t)})}return n(i)},has:function(t){return this.filter(function(){return D(t)?n.contains(this,t):n(this).find(t).size()})},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!D(t)?t:n(t)},last:function(){var t=this[this.length-1];return t&&!D(t)?t:n(t)},find:function(t){var e,i=this;return e="object"==typeof t?n(t).filter(function(){var t=this;return r.some.call(i,function(e){return n.contains(e,t)})}):1==this.length?n(S.qsa(this[0],t)):this.map(function(){return S.qsa(this,t)})},closest:function(t,e){var i=this[0],r=!1;for("object"==typeof t&&(r=n(t));i&&!(r?r.indexOf(i)>=0:S.matches(i,t));)i=i!==e&&!_(i)&&i.parentNode;return n(i)},parents:function(t){for(var e=[],i=this;i.length>0;)i=n.map(i,function(t){return(t=t.parentNode)&&!_(t)&&e.indexOf(t)<0?(e.push(t),t):void 0});return B(e,t)},parent:function(t){return B(N(this.pluck("parentNode")),t)},children:function(t){return B(this.map(function(){return V(this)}),t)},contents:function(){return this.map(function(){return o.call(this.childNodes)})},siblings:function(t){return B(this.map(function(t,e){return s.call(V(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return n.map(this,function(e){return e[t]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=I(this.nodeName))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var e=Z(t);if(this[0]&&!e)var i=n(t).get(0),r=i.parentNode||this.length>1;return this.each(function(o){n(this).wrapAll(e?t.call(this,o):r?i.cloneNode(!0):i)})},wrapAll:function(t){if(this[0]){n(this[0]).before(t=n(t));for(var e;(e=t.children()).length;)t=e.first();n(t).append(this)}return this},wrapInner:function(t){var e=Z(t);return this.each(function(i){var r=n(this),o=r.contents(),s=e?t.call(this,i):t;o.length?o.wrapAll(s):r.append(s)})},unwrap:function(){return this.parent().each(function(){n(this).replaceWith(n(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(e){return this.each(function(){var i=n(this);(e===t?"none"==i.css("display"):e)?i.show():i.hide()})},prev:function(t){return n(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return n(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0===arguments.length?this.length>0?this[0].innerHTML:null:this.each(function(e){var i=this.innerHTML;n(this).empty().append(J(this,t,e,i))})},text:function(e){return 0===arguments.length?this.length>0?this[0].textContent:null:this.each(function(){this.textContent=e===t?"":""+e})},attr:function(n,i){var r;return"string"==typeof n&&i===t?0==this.length||1!==this[0].nodeType?t:"value"==n&&"INPUT"==this[0].nodeName?this.val():!(r=this[0].getAttribute(n))&&n in this[0]?this[0][n]:r:this.each(function(t){if(1===this.nodeType)if(D(n))for(e in n)X(this,e,n[e]);else X(this,n,J(this,i,t,this.getAttribute(n)))})},removeAttr:function(t){return this.each(function(){1===this.nodeType&&X(this,t)})},prop:function(e,n){return e=P[e]||e,n===t?this[0]&&this[0][e]:this.each(function(t){this[e]=J(this,n,t,this[e])})},data:function(e,n){var i=this.attr("data-"+e.replace(m,"-$1").toLowerCase(),n);return null!==i?Y(i):t},val:function(t){return 0===arguments.length?this[0]&&(this[0].multiple?n(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value):this.each(function(e){this.value=J(this,t,e,this.value)})},offset:function(t){if(t)return this.each(function(e){var i=n(this),r=J(this,t,e,i.offset()),o=i.offsetParent().offset(),s={top:r.top-o.top,left:r.left-o.left};"static"==i.css("position")&&(s.position="relative"),i.css(s)});if(0==this.length)return null;var e=this[0].getBoundingClientRect();return{left:e.left+window.pageXOffset,top:e.top+window.pageYOffset,width:Math.round(e.width),height:Math.round(e.height)}},css:function(t,i){if(arguments.length<2){var r=this[0],o=getComputedStyle(r,"");if(!r)return;if("string"==typeof t)return r.style[C(t)]||o.getPropertyValue(t);if(A(t)){var s={};return n.each(A(t)?t:[t],function(t,e){s[e]=r.style[C(e)]||o.getPropertyValue(e)}),s}}var a="";if("string"==L(t))i||0===i?a=F(t)+":"+H(t,i):this.each(function(){this.style.removeProperty(F(t))});else for(e in t)t[e]||0===t[e]?a+=F(e)+":"+H(e,t[e])+";":this.each(function(){this.style.removeProperty(F(e))});return this.each(function(){this.style.cssText+=";"+a})},index:function(t){return t?this.indexOf(n(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return t?r.some.call(this,function(t){return this.test(W(t))},q(t)):!1},addClass:function(t){return t?this.each(function(e){i=[];var r=W(this),o=J(this,t,e,r);o.split(/\s+/g).forEach(function(t){n(this).hasClass(t)||i.push(t)},this),i.length&&W(this,r+(r?" ":"")+i.join(" "))}):this},removeClass:function(e){return this.each(function(n){return e===t?W(this,""):(i=W(this),J(this,e,n,i).split(/\s+/g).forEach(function(t){i=i.replace(q(t)," ")}),void W(this,i.trim()))})},toggleClass:function(e,i){return e?this.each(function(r){var o=n(this),s=J(this,e,r,W(this));s.split(/\s+/g).forEach(function(e){(i===t?!o.hasClass(e):i)?o.addClass(e):o.removeClass(e)})}):this},scrollTop:function(e){if(this.length){var n="scrollTop"in this[0];return e===t?n?this[0].scrollTop:this[0].pageYOffset:this.each(n?function(){this.scrollTop=e}:function(){this.scrollTo(this.scrollX,e)})}},scrollLeft:function(e){if(this.length){var n="scrollLeft"in this[0];return e===t?n?this[0].scrollLeft:this[0].pageXOffset:this.each(n?function(){this.scrollLeft=e}:function(){this.scrollTo(e,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),i=this.offset(),r=d.test(e[0].nodeName)?{top:0,left:0}:e.offset();return i.top-=parseFloat(n(t).css("margin-top"))||0,i.left-=parseFloat(n(t).css("margin-left"))||0,r.top+=parseFloat(n(e[0]).css("border-top-width"))||0,r.left+=parseFloat(n(e[0]).css("border-left-width"))||0,{top:i.top-r.top,left:i.left-r.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||a.body;t&&!d.test(t.nodeName)&&"static"==n(t).css("position");)t=t.offsetParent;return t})}},n.fn.detach=n.fn.remove,["width","height"].forEach(function(e){var i=e.replace(/./,function(t){return t[0].toUpperCase()});n.fn[e]=function(r){var o,s=this[0];return r===t?$(s)?s["inner"+i]:_(s)?s.documentElement["scroll"+i]:(o=this.offset())&&o[e]:this.each(function(t){s=n(this),s.css(e,J(this,r,t,s[e]()))})}}),v.forEach(function(t,e){var i=e%2;n.fn[t]=function(){var t,o,r=n.map(arguments,function(e){return t=L(e),"object"==t||"array"==t||null==e?e:S.fragment(e)}),s=this.length>1;return r.length<1?this:this.each(function(t,a){o=i?a:a.parentNode,a=0==e?a.nextSibling:1==e?a.firstChild:2==e?a:null,r.forEach(function(t){if(s)t=t.cloneNode(!0);else if(!o)return n(t).remove();G(o.insertBefore(t,a),function(t){null==t.nodeName||"SCRIPT"!==t.nodeName.toUpperCase()||t.type&&"text/javascript"!==t.type||t.src||window.eval.call(window,t.innerHTML)})})})},n.fn[i?t+"To":"insert"+(e?"Before":"After")]=function(e){return n(e)[t](this),this}}),S.Z.prototype=n.fn,S.uniq=N,S.deserializeValue=Y,n.zepto=S,n}();window.Zepto=Zepto,void 0===window.$&&(window.$=Zepto),function(t){function l(t){return t._zid||(t._zid=e++)}function h(t,e,n,i){if(e=p(e),e.ns)var r=d(e.ns);return(s[l(t)]||[]).filter(function(t){return!(!t||e.e&&t.e!=e.e||e.ns&&!r.test(t.ns)||n&&l(t.fn)!==l(n)||i&&t.sel!=i)})}function p(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function d(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function m(t,e){return t.del&&!u&&t.e in f||!!e}function g(t){return c[t]||u&&f[t]||t}function v(e,i,r,o,a,u,f){var h=l(e),d=s[h]||(s[h]=[]);i.split(/\s/).forEach(function(i){if("ready"==i)return t(document).ready(r);var s=p(i);s.fn=r,s.sel=a,s.e in c&&(r=function(e){var n=e.relatedTarget;return!n||n!==this&&!t.contains(this,n)?s.fn.apply(this,arguments):void 0}),s.del=u;var l=u||r;s.proxy=function(t){if(t=j(t),!t.isImmediatePropagationStopped()){t.data=o;var i=l.apply(e,t._args==n?[t]:[t].concat(t._args));return i===!1&&(t.preventDefault(),t.stopPropagation()),i}},s.i=d.length,d.push(s),"addEventListener"in e&&e.addEventListener(g(s.e),s.proxy,m(s,f))})}function y(t,e,n,i,r){var o=l(t);(e||"").split(/\s/).forEach(function(e){h(t,e,n,i).forEach(function(e){delete s[o][e.i],"removeEventListener"in t&&t.removeEventListener(g(e.e),e.proxy,m(e,r))})})}function j(e,i){return(i||!e.isDefaultPrevented)&&(i||(i=e),t.each(E,function(t,n){var r=i[t];e[t]=function(){return this[n]=x,r&&r.apply(i,arguments)},e[n]=b}),(i.defaultPrevented!==n?i.defaultPrevented:"returnValue"in i?i.returnValue===!1:i.getPreventDefault&&i.getPreventDefault())&&(e.isDefaultPrevented=x)),e}function T(t){var e,i={originalEvent:t};for(e in t)w.test(e)||t[e]===n||(i[e]=t[e]);return j(i,t)}var n,e=1,i=Array.prototype.slice,r=t.isFunction,o=function(t){return"string"==typeof t},s={},a={},u="onfocusin"in window,f={focus:"focusin",blur:"focusout"},c={mouseenter:"mouseover",mouseleave:"mouseout"};a.click=a.mousedown=a.mouseup=a.mousemove="MouseEvents",t.event={add:v,remove:y},t.proxy=function(e,n){if(r(e)){var i=function(){return e.apply(n,arguments)};return i._zid=l(e),i}if(o(n))return t.proxy(e[n],e);throw new TypeError("expected function")},t.fn.bind=function(t,e,n){return this.on(t,e,n)},t.fn.unbind=function(t,e){return this.off(t,e)},t.fn.one=function(t,e,n,i){return this.on(t,e,n,i,1)};var x=function(){return!0},b=function(){return!1},w=/^([A-Z]|returnValue$|layer[XY]$)/,E={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};t.fn.delegate=function(t,e,n){return this.on(e,t,n)},t.fn.undelegate=function(t,e,n){return this.off(e,t,n)},t.fn.live=function(e,n){return t(document.body).delegate(this.selector,e,n),this},t.fn.die=function(e,n){return t(document.body).undelegate(this.selector,e,n),this},t.fn.on=function(e,s,a,u,f){var c,l,h=this;return e&&!o(e)?(t.each(e,function(t,e){h.on(t,s,a,e,f)}),h):(o(s)||r(u)||u===!1||(u=a,a=s,s=n),(r(a)||a===!1)&&(u=a,a=n),u===!1&&(u=b),h.each(function(n,r){f&&(c=function(t){return y(r,t.type,u),u.apply(this,arguments)}),s&&(l=function(e){var n,o=t(e.target).closest(s,r).get(0);return o&&o!==r?(n=t.extend(T(e),{currentTarget:o,liveFired:r}),(c||u).apply(o,[n].concat(i.call(arguments,1)))):void 0}),v(r,e,u,a,s,l||c)}))},t.fn.off=function(e,i,s){var a=this;return e&&!o(e)?(t.each(e,function(t,e){a.off(t,i,e)}),a):(o(i)||r(s)||s===!1||(s=i,i=n),s===!1&&(s=b),a.each(function(){y(this,e,s,i)}))},t.fn.trigger=function(e,n){return e=o(e)||t.isPlainObject(e)?t.Event(e):j(e),e._args=n,this.each(function(){"dispatchEvent"in this?this.dispatchEvent(e):t(this).triggerHandler(e,n)})},t.fn.triggerHandler=function(e,n){var i,r;return this.each(function(s,a){i=T(o(e)?t.Event(e):e),i._args=n,i.target=a,t.each(h(a,e.type||e),function(t,e){return r=e.proxy(i),i.isImmediatePropagationStopped()?!1:void 0})}),r},"focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(e){t.fn[e]=function(t){return t?this.bind(e,t):this.trigger(e)}}),["focus","blur"].forEach(function(e){t.fn[e]=function(t){return t?this.bind(e,t):this.each(function(){try{this[e]()}catch(t){}}),this}}),t.Event=function(t,e){o(t)||(e=t,t=e.type);var n=document.createEvent(a[t]||"Events"),i=!0;if(e)for(var r in e)"bubbles"==r?i=!!e[r]:n[r]=e[r];return n.initEvent(t,i,!0),j(n)}}(Zepto),function(t){function l(e,n,i){var r=t.Event(n);return t(e).trigger(r,i),!r.isDefaultPrevented()}function h(t,e,i,r){return t.global?l(e||n,i,r):void 0}function p(e){e.global&&0===t.active++&&h(e,null,"ajaxStart")}function d(e){e.global&&!--t.active&&h(e,null,"ajaxStop")}function m(t,e){var n=e.context;return e.beforeSend.call(n,t,e)===!1||h(e,n,"ajaxBeforeSend",[t,e])===!1?!1:void h(e,n,"ajaxSend",[t,e])}function g(t,e,n,i){var r=n.context,o="success";n.success.call(r,t,o,e),i&&i.resolveWith(r,[t,o,e]),h(n,r,"ajaxSuccess",[e,n,t]),y(o,e,n)}function v(t,e,n,i,r){var o=i.context;i.error.call(o,n,e,t),r&&r.rejectWith(o,[n,e,t]),h(i,o,"ajaxError",[n,i,t||e]),y(e,n,i)}function y(t,e,n){var i=n.context;n.complete.call(i,e,t),h(n,i,"ajaxComplete",[e,n]),d(n)}function x(){}function b(t){return t&&(t=t.split(";",2)[0]),t&&(t==f?"html":t==u?"json":s.test(t)?"script":a.test(t)&&"xml")||"text"}function w(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function E(e){e.processData&&e.data&&"string"!=t.type(e.data)&&(e.data=t.param(e.data,e.traditional)),!e.data||e.type&&"GET"!=e.type.toUpperCase()||(e.url=w(e.url,e.data),e.data=void 0)}function j(e,n,i,r){return t.isFunction(n)&&(r=i,i=n,n=void 0),t.isFunction(i)||(r=i,i=void 0),{url:e,data:n,success:i,dataType:r}}function S(e,n,i,r){var o,s=t.isArray(n),a=t.isPlainObject(n);t.each(n,function(n,u){o=t.type(u),r&&(n=i?r:r+"["+(a||"object"==o||"array"==o?n:"")+"]"),!r&&s?e.add(u.name,u.value):"array"==o||!i&&"object"==o?S(e,u,i,n):e.add(n,u)})}var i,r,e=0,n=window.document,o=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,s=/^(?:text|application)\/javascript/i,a=/^(?:text|application)\/xml/i,u="application/json",f="text/html",c=/^\s*$/;t.active=0,t.ajaxJSONP=function(i,r){if(!("type"in i))return t.ajax(i);var f,h,o=i.jsonpCallback,s=(t.isFunction(o)?o():o)||"jsonp"+ ++e,a=n.createElement("script"),u=window[s],c=function(e){t(a).triggerHandler("error",e||"abort")},l={abort:c};return r&&r.promise(l),t(a).on("load error",function(e,n){clearTimeout(h),t(a).off().remove(),"error"!=e.type&&f?g(f[0],l,i,r):v(null,n||"error",l,i,r),window[s]=u,f&&t.isFunction(u)&&u(f[0]),u=f=void 0}),m(l,i)===!1?(c("abort"),l):(window[s]=function(){f=arguments},a.src=i.url.replace(/\?(.+)=\?/,"?$1="+s),n.head.appendChild(a),i.timeout>0&&(h=setTimeout(function(){c("timeout")},i.timeout)),l)},t.ajaxSettings={type:"GET",beforeSend:x,success:x,error:x,complete:x,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:u,xml:"application/xml, text/xml",html:f,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0},t.ajax=function(e){var n=t.extend({},e||{}),o=t.Deferred&&t.Deferred();for(i in t.ajaxSettings)void 0===n[i]&&(n[i]=t.ajaxSettings[i]);p(n),n.crossDomain||(n.crossDomain=/^([\w-]+:)?\/\/([^\/]+)/.test(n.url)&&RegExp.$2!=window.location.host),n.url||(n.url=window.location.toString()),E(n),n.cache===!1&&(n.url=w(n.url,"_="+Date.now()));var s=n.dataType,a=/\?.+=\?/.test(n.url);if("jsonp"==s||a)return a||(n.url=w(n.url,n.jsonp?n.jsonp+"=?":n.jsonp===!1?"":"callback=?")),t.ajaxJSONP(n,o);var j,u=n.accepts[s],f={},l=function(t,e){f[t.toLowerCase()]=[t,e]},h=/^([\w-]+:)\/\//.test(n.url)?RegExp.$1:window.location.protocol,d=n.xhr(),y=d.setRequestHeader;if(o&&o.promise(d),n.crossDomain||l("X-Requested-With","XMLHttpRequest"),l("Accept",u||"*/*"),(u=n.mimeType||u)&&(u.indexOf(",")>-1&&(u=u.split(",",2)[0]),d.overrideMimeType&&d.overrideMimeType(u)),(n.contentType||n.contentType!==!1&&n.data&&"GET"!=n.type.toUpperCase())&&l("Content-Type",n.contentType||"application/x-www-form-urlencoded"),n.headers)for(r in n.headers)l(r,n.headers[r]);if(d.setRequestHeader=l,d.onreadystatechange=function(){if(4==d.readyState){d.onreadystatechange=x,clearTimeout(j);var e,i=!1;if(d.status>=200&&d.status<300||304==d.status||0==d.status&&"file:"==h){s=s||b(n.mimeType||d.getResponseHeader("content-type")),e=d.responseText;try{"script"==s?(1,eval)(e):"xml"==s?e=d.responseXML:"json"==s&&(e=c.test(e)?null:t.parseJSON(e))}catch(r){i=r}i?v(i,"parsererror",d,n,o):g(e,d,n,o)}else v(d.statusText||null,d.status?"error":"abort",d,n,o)}},m(d,n)===!1)return d.abort(),v(null,"abort",d,n,o),d;if(n.xhrFields)for(r in n.xhrFields)d[r]=n.xhrFields[r];var T="async"in n?n.async:!0;d.open(n.type,n.url,T,n.username,n.password);for(r in f)y.apply(d,f[r]);return n.timeout>0&&(j=setTimeout(function(){d.onreadystatechange=x,d.abort(),v(null,"timeout",d,n,o)},n.timeout)),d.send(n.data?n.data:null),d},t.get=function(){return t.ajax(j.apply(null,arguments))},t.post=function(){var e=j.apply(null,arguments);return e.type="POST",t.ajax(e)},t.getJSON=function(){var e=j.apply(null,arguments);return e.dataType="json",t.ajax(e)},t.fn.load=function(e,n,i){if(!this.length)return this;var a,r=this,s=e.split(/\s/),u=j(e,n,i),f=u.success;return s.length>1&&(u.url=s[0],a=s[1]),u.success=function(e){r.html(a?t("<div>").html(e.replace(o,"")).find(a):e),f&&f.apply(r,arguments)},t.ajax(u),this};var T=encodeURIComponent;t.param=function(t,e){var n=[];return n.add=function(t,e){this.push(T(t)+"="+T(e))},S(n,t,e),n.join("&").replace(/%20/g,"+")}}(Zepto),function(t){t.fn.serializeArray=function(){var n,e=[];return t([].slice.call(this.get(0).elements)).each(function(){n=t(this);var i=n.attr("type");"fieldset"!=this.nodeName.toLowerCase()&&!this.disabled&&"submit"!=i&&"reset"!=i&&"button"!=i&&("radio"!=i&&"checkbox"!=i||this.checked)&&e.push({name:n.attr("name"),value:n.val()})}),e},t.fn.serialize=function(){var t=[];return this.serializeArray().forEach(function(e){t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(e.value))}),t.join("&")},t.fn.submit=function(e){if(e)this.bind("submit",e);else if(this.length){var n=t.Event("submit");this.eq(0).trigger(n),n.isDefaultPrevented()||this.get(0).submit()}return this}}(Zepto),function(t){"__proto__"in{}||t.extend(t.zepto,{Z:function(e,n){return e=e||[],t.extend(e,t.fn),e.selector=n||"",e.__Z=!0,e},isZ:function(e){return"array"===t.type(e)&&"__Z"in e}});try{getComputedStyle(void 0)}catch(e){var n=getComputedStyle;window.getComputedStyle=function(t){try{return n(t)}catch(e){return null}}}}(Zepto);
2205</script>
2206 <script>/*!
2207 * clipboard.js v1.5.3
2208 * https://zenorocha.github.io/clipboard.js
2209 *
2210 * Licensed MIT © Zeno Rocha
2211 */
2212!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Clipboard=t()}}(function(){var t,e,n;return function t(e,n,r){function o(a,c){if(!n[a]){if(!e[a]){var s="function"==typeof require&&require;if(!c&&s)return s(a,!0);if(i)return i(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var l=n[a]={exports:{}};e[a][0].call(l.exports,function(t){var n=e[a][1][t];return o(n?n:t)},l,l.exports,t,e,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(t,e,n){var r=t("matches-selector");e.exports=function(t,e,n){for(var o=n?t:t.parentNode;o&&o!==document;){if(r(o,e))return o;o=o.parentNode}}},{"matches-selector":2}],2:[function(t,e,n){function r(t,e){if(i)return i.call(t,e);for(var n=t.parentNode.querySelectorAll(e),r=0;r<n.length;++r)if(n[r]==t)return!0;return!1}var o=Element.prototype,i=o.matchesSelector||o.webkitMatchesSelector||o.mozMatchesSelector||o.msMatchesSelector||o.oMatchesSelector;e.exports=r},{}],3:[function(t,e,n){function r(t,e,n,r){var i=o.apply(this,arguments);return t.addEventListener(n,i),{destroy:function(){t.removeEventListener(n,i)}}}function o(t,e,n,r){return function(n){var o=i(n.target,e,!0);o&&(Object.defineProperty(n,"target",{value:o}),r.call(t,n))}}var i=t("closest");e.exports=r},{closest:1}],4:[function(t,e,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.function=function(t){var e=Object.prototype.toString.call(t);return"[object Function]"===e}},{}],5:[function(t,e,n){function r(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!c.string(e))throw new TypeError("Second argument must be a String");if(!c.function(n))throw new TypeError("Third argument must be a Function");if(c.node(t))return o(t,e,n);if(c.nodeList(t))return i(t,e,n);if(c.string(t))return a(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function o(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}function i(t,e,n){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,n)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,n)})}}}function a(t,e,n){return s(document.body,t,e,n)}var c=t("./is"),s=t("delegate");e.exports=r},{"./is":4,delegate:3}],6:[function(t,e,n){function r(t){var e;if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName)t.select(),e=t.value;else{var n=window.getSelection(),r=document.createRange();r.selectNodeContents(t),n.removeAllRanges(),n.addRange(r),e=n.toString()}return e}e.exports=r},{}],7:[function(t,e,n){function r(){}r.prototype={on:function(t,e,n){var r=this.e||(this.e={});return(r[t]||(r[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){function r(){o.off(t,r),e.apply(n,arguments)}var o=this;return r._=e,this.on(t,r,n)},emit:function(t){var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),r=0,o=n.length;for(r;o>r;r++)n[r].fn.apply(n[r].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),r=n[t],o=[];if(r&&e)for(var i=0,a=r.length;a>i;i++)r[i].fn!==e&&r[i].fn._!==e&&o.push(r[i]);return o.length?n[t]=o:delete n[t],this}},e.exports=r},{}],8:[function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}n.__esModule=!0;var i=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),a=t("select"),c=r(a),s=function(){function t(e){o(this,t),this.resolveOptions(e),this.initSelection()}return t.prototype.resolveOptions=function t(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.action=e.action,this.emitter=e.emitter,this.target=e.target,this.text=e.text,this.trigger=e.trigger,this.selectedText=""},t.prototype.initSelection=function t(){if(this.text&&this.target)throw new Error('Multiple attributes declared, use either "target" or "text"');if(this.text)this.selectFake();else{if(!this.target)throw new Error('Missing required attributes, use either "target" or "text"');this.selectTarget()}},t.prototype.selectFake=function t(){var e=this;this.removeFake(),this.fakeHandler=document.body.addEventListener("click",function(){return e.removeFake()}),this.fakeElem=document.createElement("textarea"),this.fakeElem.style.position="absolute",this.fakeElem.style.left="-9999px",this.fakeElem.style.top=(window.pageYOffset||document.documentElement.scrollTop)+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,document.body.appendChild(this.fakeElem),this.selectedText=c.default(this.fakeElem),this.copyText()},t.prototype.removeFake=function t(){this.fakeHandler&&(document.body.removeEventListener("click"),this.fakeHandler=null),this.fakeElem&&(document.body.removeChild(this.fakeElem),this.fakeElem=null)},t.prototype.selectTarget=function t(){this.selectedText=c.default(this.target),this.copyText()},t.prototype.copyText=function t(){var e=void 0;try{e=document.execCommand(this.action)}catch(n){e=!1}this.handleResult(e)},t.prototype.handleResult=function t(e){e?this.emitter.emit("success",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)}):this.emitter.emit("error",{action:this.action,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})},t.prototype.clearSelection=function t(){this.target&&this.target.blur(),window.getSelection().removeAllRanges()},t.prototype.destroy=function t(){this.removeFake()},i(t,[{key:"action",set:function t(){var e=arguments.length<=0||void 0===arguments[0]?"copy":arguments[0];if(this._action=e,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function t(){return this._action}},{key:"target",set:function t(e){if(void 0!==e){if(!e||"object"!=typeof e||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');this._target=e}},get:function t(){return this._target}}]),t}();n.default=s,e.exports=n.default},{select:6}],9:[function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function a(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}n.__esModule=!0;var c=t("./clipboard-action"),s=r(c),u=t("tiny-emitter"),l=r(u),f=t("good-listener"),d=r(f),h=function(t){function e(n,r){o(this,e),t.call(this),this.resolveOptions(r),this.listenClick(n)}return i(e,t),e.prototype.resolveOptions=function t(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText},e.prototype.listenClick=function t(e){var n=this;this.listener=d.default(e,"click",function(t){return n.onClick(t)})},e.prototype.onClick=function t(e){this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new s.default({action:this.action(e.target),target:this.target(e.target),text:this.text(e.target),trigger:e.target,emitter:this})},e.prototype.defaultAction=function t(e){return a("action",e)},e.prototype.defaultTarget=function t(e){var n=a("target",e);return n?document.querySelector(n):void 0},e.prototype.defaultText=function t(e){return a("text",e)},e.prototype.destroy=function t(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)},e}(l.default);n.default=h,e.exports=n.default},{"./clipboard-action":8,"good-listener":5,"tiny-emitter":7}]},{},[9])(9)});</script>
2213 <script>Zepto(function($) {
2214 var $leftPanel = $('.left-panel');
2215 var $frameContainer = $('.frames-container');
2216 var $appFramesTab = $('#application-frames-tab');
2217 var $allFramesTab = $('#all-frames-tab');
2218 var $container = $('.details-container');
2219 var $activeLine = $frameContainer.find('.frame.active');
2220 var $activeFrame = $container.find('.frame-code.active');
2221 var $ajaxEditors = $('.editor-link[data-ajax]');
2222 var $header = $('header');
2223
2224 $header.on('mouseenter', function () {
2225 if ($header.find('.exception').height() >= 145) {
2226 $header.addClass('header-expand');
2227 }
2228 });
2229 $header.on('mouseleave', function () {
2230 $header.removeClass('header-expand');
2231 });
2232
2233 /*
2234 * add prettyprint classes to our current active codeblock
2235 * run prettyPrint() to highlight the active code
2236 * scroll to the line when prettyprint is done
2237 * highlight the current line
2238 */
2239 var renderCurrentCodeblock = function(id) {
2240
2241 // remove previous codeblocks so we only render the active one
2242 $('.code-block').removeClass('prettyprint');
2243
2244 // pass the id in when we can for speed
2245 if (typeof(id) === 'undefined' || typeof(id) === 'object') {
2246 var id = /frame\-line\-([\d]*)/.exec($activeLine.attr('id'))[1];
2247 }
2248
2249 $('#frame-code-linenums-' + id).addClass('prettyprint');
2250 $('#frame-code-args-' + id).addClass('prettyprint');
2251
2252 prettyPrint(highlightCurrentLine);
2253
2254 }
2255
2256 /*
2257 * Highlight the active and neighboring lines for the current frame
2258 * Adjust the offset to make sure that line is veritcally centered
2259 */
2260
2261 var highlightCurrentLine = function() {
2262 var activeLineNumber = +($activeLine.find('.frame-line').text());
2263 var $lines = $activeFrame.find('.linenums li');
2264 var firstLine = +($lines.first().val());
2265
2266 // We show more code than needed, purely for proper syntax highlighting
2267 // Let’s hide a big chunk of that code and then scroll the remaining block
2268 $activeFrame.find('.code-block').first().css({
2269 maxHeight: 345,
2270 overflow: 'hidden',
2271 });
2272
2273 var $offset = $($lines[activeLineNumber - firstLine - 10]);
2274 if ($offset.length > 0) {
2275 $offset[0].scrollIntoView();
2276 }
2277
2278 $($lines[activeLineNumber - firstLine - 1]).addClass('current');
2279 $($lines[activeLineNumber - firstLine]).addClass('current active');
2280 $($lines[activeLineNumber - firstLine + 1]).addClass('current');
2281
2282 $container.scrollTop(0);
2283
2284 }
2285
2286 /*
2287 * click handler for loading codeblocks
2288 */
2289
2290 $frameContainer.on('click', '.frame', function() {
2291
2292 var $this = $(this);
2293 var id = /frame\-line\-([\d]*)/.exec($this.attr('id'))[1];
2294 var $codeFrame = $('#frame-code-' + id);
2295
2296 if ($codeFrame) {
2297
2298 $activeLine.removeClass('active');
2299 $activeFrame.removeClass('active');
2300
2301 $this.addClass('active');
2302 $codeFrame.addClass('active');
2303
2304 $activeLine = $this;
2305 $activeFrame = $codeFrame;
2306
2307 renderCurrentCodeblock(id);
2308
2309 }
2310
2311 });
2312
2313 var clipboard = new Clipboard('.clipboard');
2314 var showTooltip = function(elem, msg) {
2315 elem.setAttribute('class', 'clipboard tooltipped tooltipped-s');
2316 elem.setAttribute('aria-label', msg);
2317 };
2318
2319 clipboard.on('success', function(e) {
2320 e.clearSelection();
2321
2322 showTooltip(e.trigger, 'Copied!');
2323 });
2324
2325 clipboard.on('error', function(e) {
2326 showTooltip(e.trigger, fallbackMessage(e.action));
2327 });
2328
2329 var btn = document.querySelector('.clipboard');
2330
2331 btn.addEventListener('mouseleave', function(e) {
2332 e.currentTarget.setAttribute('class', 'clipboard');
2333 e.currentTarget.removeAttribute('aria-label');
2334 });
2335
2336 function fallbackMessage(action) {
2337 var actionMsg = '';
2338 var actionKey = (action === 'cut' ? 'X' : 'C');
2339
2340 if (/Mac/i.test(navigator.userAgent)) {
2341 actionMsg = 'Press ⌘-' + actionKey + ' to ' + action;
2342 } else {
2343 actionMsg = 'Press Ctrl-' + actionKey + ' to ' + action;
2344 }
2345
2346 return actionMsg;
2347 }
2348
2349 function scrollIntoView($node, $parent) {
2350 var nodeOffset = $node.offset();
2351 var nodeTop = nodeOffset.top;
2352 var nodeBottom = nodeTop + nodeOffset.height;
2353 var parentScrollTop = $parent.scrollTop();
2354 var parentHeight = $parent.height();
2355
2356 if (nodeTop < 0) {
2357 $parent.scrollTop(parentScrollTop + nodeTop);
2358 } else if (nodeBottom > parentHeight) {
2359 $parent.scrollTop(parentScrollTop + nodeBottom - parentHeight);
2360 }
2361 }
2362
2363 $(document).on('keydown', function(e) {
2364 var applicationFrames = $frameContainer.hasClass('frames-container-application'),
2365 frameClass = applicationFrames ? '.frame.frame-application' : '.frame';
2366
2367 if(e.ctrlKey || e.which === 74 || e.which === 75) {
2368 // CTRL+Arrow-UP/k and Arrow-Down/j support:
2369 // 1) select the next/prev element
2370 // 2) make sure the newly selected element is within the view-scope
2371 // 3) focus the (right) container, so arrow-up/down (without ctrl) scroll the details
2372 if (e.which === 38 /* arrow up */ || e.which === 75 /* k */) {
2373 $activeLine.prev(frameClass).click();
2374 scrollIntoView($activeLine, $leftPanel);
2375 $container.focus();
2376 e.preventDefault();
2377 } else if (e.which === 40 /* arrow down */ || e.which === 74 /* j */) {
2378 $activeLine.next(frameClass).click();
2379 scrollIntoView($activeLine, $leftPanel);
2380 $container.focus();
2381 e.preventDefault();
2382 }
2383 } else if (e.which == 78 /* n */) {
2384 if ($appFramesTab.length) {
2385 setActiveFramesTab($('.frames-tab:not(.frames-tab-active)'));
2386 }
2387 }
2388 });
2389
2390 // Render late enough for highlightCurrentLine to be ready
2391 renderCurrentCodeblock();
2392
2393 // Avoid to quit the page with some protocol (e.g. IntelliJ Platform REST API)
2394 $ajaxEditors.on('click', function(e){
2395 e.preventDefault();
2396 $.get(this.href);
2397 });
2398
2399 // Symfony VarDumper: Close the by default expanded objects
2400 $('.sf-dump-expanded')
2401 .removeClass('sf-dump-expanded')
2402 .addClass('sf-dump-compact');
2403 $('.sf-dump-toggle span').html('▶');
2404
2405 // Make the given frames-tab active
2406 function setActiveFramesTab($tab) {
2407 $tab.addClass('frames-tab-active');
2408
2409 if ($tab.attr('id') == 'application-frames-tab') {
2410 $frameContainer.addClass('frames-container-application');
2411 $allFramesTab.removeClass('frames-tab-active');
2412 } else {
2413 $frameContainer.removeClass('frames-container-application');
2414 $appFramesTab.removeClass('frames-tab-active');
2415 }
2416 }
2417
2418 $('a.frames-tab').on('click', function(e) {
2419 e.preventDefault();
2420 setActiveFramesTab($(this));
2421 });
2422});
2423</script>
2424 </body>
2425</html>