Searched refs:dstBox (Results 1 - 25 of 56) sorted by relevance

123

/xsrc/external/mit/xf86-video-intel/dist/src/uxa/
H A Dintel_video_overlay.c201 BoxPtr dstBox, short src_w, short src_h, short drw_w,
228 request.dst_x = dstBox->x1;
229 request.dst_y = dstBox->y1;
230 request.dst_width = dstBox->x2 - dstBox->x1;
231 request.dst_height = dstBox->y2 - dstBox->y1;
277 BoxPtr dstBox)
287 dstBox->x1 -= crtc->x;
288 dstBox
197 intel_overlay_put_image(intel_screen_private * intel,xf86CrtcPtr crtc,int id,short width,short height,int dstPitch,int dstPitch2,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h) argument
276 intel_update_dst_box_to_crtc_coords(ScrnInfoPtr scrn,xf86CrtcPtr crtc,BoxPtr dstBox) argument
328 intel_video_overlay_display(ScrnInfoPtr scrn,xf86CrtcPtr crtc,int id,short width,short height,int dstPitch,int dstPitch2,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h) argument
381 BoxRec dstBox; local in function:intel_video_overlay_put_image
[all...]
/xsrc/external/mit/xf86-video-intel-2014/dist/src/uxa/
H A Dintel_video_overlay.c201 BoxPtr dstBox, short src_w, short src_h, short drw_w,
228 request.dst_x = dstBox->x1;
229 request.dst_y = dstBox->y1;
230 request.dst_width = dstBox->x2 - dstBox->x1;
231 request.dst_height = dstBox->y2 - dstBox->y1;
277 BoxPtr dstBox)
287 dstBox->x1 -= crtc->x;
288 dstBox
197 intel_overlay_put_image(intel_screen_private * intel,xf86CrtcPtr crtc,int id,short width,short height,int dstPitch,int dstPitch2,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h) argument
276 intel_update_dst_box_to_crtc_coords(ScrnInfoPtr scrn,xf86CrtcPtr crtc,BoxPtr dstBox) argument
328 intel_video_overlay_display(ScrnInfoPtr scrn,xf86CrtcPtr crtc,int id,short width,short height,int dstPitch,int dstPitch2,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h) argument
381 BoxRec dstBox; local in function:intel_video_overlay_put_image
[all...]
/xsrc/external/mit/xf86-video-nouveau/dist/src/
H A Dnv04_xv_ovl.c42 int id, int dstPitch, BoxPtr dstBox, int x1, int y1,
55 dstBox->y1 <<= 1;
56 dstBox->y2 <<= 1;
84 nvWriteVIDEO(pNv, NV_PVIDEO_WINDOW_START, (dstBox->y1 << 16) | dstBox->x1);
85 nvWriteVIDEO(pNv, NV_PVIDEO_WINDOW_SIZE, ((dstBox->y2 - dstBox->y1) << 16) |
86 (dstBox->x2 - dstBox->x1));
41 NV04PutOverlayImage(ScrnInfoPtr pScrn,struct nouveau_bo * src,int offset,int id,int dstPitch,BoxPtr dstBox,int x1,int y1,int x2,int y2,short width,short height,short src_w,short src_h,short drw_w,short drw_h,RegionPtr clipBoxes) argument
H A Dnv10_xv_ovl.c50 * @param dstBox destination box
66 int dstPitch, BoxPtr dstBox, int x1, int y1, int x2, int y2,
78 dstBox->y1 <<= 1;
79 dstBox->y2 <<= 1;
95 //16,y1>>16, (src_w << 20) / drw_w, (src_h << 20) / drw_h, (dstBox->x1),(dstBox->y1), (dstBox->y2 - dstBox->y1), (dstBox->x2 - dstBox
64 NV10PutOverlayImage(ScrnInfoPtr pScrn,struct nouveau_bo * src,int offset,int uvoffset,int id,int dstPitch,BoxPtr dstBox,int x1,int y1,int x2,int y2,short width,short height,short src_w,short src_h,short drw_w,short drw_h,RegionPtr clipBoxes) argument
[all...]
H A Dnv04_xv_blit.c50 int id, int src_pitch, BoxPtr dstBox,
78 dst_size = ((dstBox->y2 - dstBox->y1) << 16) |
79 (dstBox->x2 - dstBox->x1);
80 dst_point = (dstBox->y1 << 16) | dstBox->x1;
131 NV11SyncToVBlank(ppix, dstBox);
49 NVPutBlitImage(ScrnInfoPtr pScrn,struct nouveau_bo * src,int src_offset,int id,int src_pitch,BoxPtr dstBox,int x1,int y1,int x2,int y2,short width,short height,short src_w,short src_h,short drw_w,short drw_h,RegionPtr clipBoxes,PixmapPtr ppix) argument
/xsrc/external/mit/xf86-video-neomagic/dist/src/
H A Dneo_video.c307 BoxRec dstBox; local in function:NEOPutVideo
330 dstBox.x1 = drw_x;
331 dstBox.y1 = drw_y;
332 dstBox.x2 = drw_x + drw_w;
333 dstBox.y2 = drw_y + drw_h;
335 if (!xf86XVClipVideoHelper(&dstBox, &x1, &x2, &y1, &y2,
344 dstBox.x1 -= pScrn->frameX0;
345 dstBox.y1 -= pScrn->frameY0;
346 dstBox.x2 -= pScrn->frameX0;
347 dstBox
617 BoxRec dstBox; local in function:NEOPutImage
791 NEODisplayVideo(ScrnInfoPtr pScrn,int id,int offset,short width,short height,int pitch,int x1,int y1,int x2,int y2,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h) argument
1074 BoxRec dstBox; local in function:NEODisplaySurface
[all...]
/xsrc/external/mit/xf86-video-intel/dist/src/sna/
H A Dsna_video_overlay.c294 update_dst_box_to_crtc_coords(struct sna *sna, xf86CrtcPtr crtc, BoxPtr dstBox) argument
305 dstBox->x1 -= crtc->x;
306 dstBox->x2 -= crtc->x;
307 dstBox->y1 -= crtc->y;
308 dstBox->y2 -= crtc->y;
311 tmp = dstBox->x1;
312 dstBox->x1 = dstBox->y1 - crtc->x;
313 dstBox->y1 = scrn->virtualX - tmp - crtc->y;
314 tmp = dstBox
346 sna_video_overlay_show(struct sna * sna,struct sna_video * video,struct sna_video_frame * frame,xf86CrtcPtr crtc,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h) argument
459 BoxRec dstBox; local in function:sna_video_overlay_put_image
[all...]
H A Dsna_video_sprite.c185 update_dst_box_to_crtc_coords(struct sna *sna, xf86CrtcPtr crtc, BoxPtr dstBox) argument
192 dstBox->x1 -= crtc->x;
193 dstBox->x2 -= crtc->x;
194 dstBox->y1 -= crtc->y;
195 dstBox->y2 -= crtc->y;
199 tmp = dstBox->x1;
200 dstBox->x1 = dstBox->y1 - crtc->x;
201 dstBox->y1 = scrn->virtualX - tmp - crtc->y;
202 tmp = dstBox
280 sna_video_sprite_show(struct sna * sna,struct sna_video * video,struct sna_video_frame * frame,xf86CrtcPtr crtc,BoxPtr dstBox) argument
[all...]
/xsrc/external/mit/xf86-video-intel-2014/dist/src/sna/
H A Dsna_video_overlay.c294 update_dst_box_to_crtc_coords(struct sna *sna, xf86CrtcPtr crtc, BoxPtr dstBox) argument
305 dstBox->x1 -= crtc->x;
306 dstBox->x2 -= crtc->x;
307 dstBox->y1 -= crtc->y;
308 dstBox->y2 -= crtc->y;
311 tmp = dstBox->x1;
312 dstBox->x1 = dstBox->y1 - crtc->x;
313 dstBox->y1 = scrn->virtualX - tmp - crtc->y;
314 tmp = dstBox
346 sna_video_overlay_show(struct sna * sna,struct sna_video * video,struct sna_video_frame * frame,xf86CrtcPtr crtc,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h) argument
459 BoxRec dstBox; local in function:sna_video_overlay_put_image
[all...]
H A Dsna_video_sprite.c168 update_dst_box_to_crtc_coords(struct sna *sna, xf86CrtcPtr crtc, BoxPtr dstBox) argument
175 dstBox->x1 -= crtc->x;
176 dstBox->x2 -= crtc->x;
177 dstBox->y1 -= crtc->y;
178 dstBox->y2 -= crtc->y;
182 tmp = dstBox->x1;
183 dstBox->x1 = dstBox->y1 - crtc->x;
184 dstBox->y1 = scrn->virtualX - tmp - crtc->y;
185 tmp = dstBox
217 sna_video_sprite_show(struct sna * sna,struct sna_video * video,struct sna_video_frame * frame,xf86CrtcPtr crtc,BoxPtr dstBox) argument
[all...]
/xsrc/external/mit/xf86-video-savage/dist/src/
H A Dsavage_video.c87 BoxPtr dstBox,
95 BoxPtr dstBox,
103 BoxPtr dstBox,
111 BoxPtr dstBox,
1474 BoxPtr dstBox,
1511 dstBox->x1 = (dstBox->x1 * psav->XExp1) / psav->XExp2;
1512 dstBox->y1 = (dstBox->y1 * psav->YExp1) / psav->YExp2;
1513 dstBox
1467 SavageDisplayVideoOld(ScrnInfoPtr pScrn,int id,int offset,short width,short height,int pitch,int x1,int y1,int x2,int y2,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h) argument
1627 SavageDisplayVideoNew(ScrnInfoPtr pScrn,int id,int offset,short width,short height,int pitch,int x1,int y1,int x2,int y2,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h) argument
1770 SavageDisplayVideo2000(ScrnInfoPtr pScrn,int id,int offset,short width,short height,int pitch,int x1,int y1,int x2,int y2,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h) argument
1925 BoxRec dstBox; local in function:SavagePutImage
2324 BoxRec dstBox; local in function:SavageDisplaySurface
[all...]
/xsrc/external/mit/xf86-video-geode/dist/src/
H A Dlx_video.c77 BoxPtr dstBox, short srcW, short srcH, short drawW, short drawH);
354 BoxPtr dstBox, short srcW, short srcH, short drawW, short drawH)
409 xend = dstBox->x2;
410 yend = dstBox->y2;
412 if (dstBox->y1 < 0) {
414 lines = ((-dstBox->y1) * srcH) / drawH;
416 lines = (-dstBox->y1);
419 drawH += dstBox->y1;
422 ystart = dstBox->y1;
431 vidPos.x = dstBox
353 LXDisplayVideo(ScrnInfoPtr pScrni,int id,short width,short height,BoxPtr dstBox,short srcW,short srcH,short drawW,short drawH) argument
475 BoxRec dstBox; local in function:LXPutImage
777 BoxRec dstBox; local in function:LXDisplaySurface
[all...]
/xsrc/external/mit/xf86-video-glint/dist/src/
H A Dpm3_video.c694 BoxPtr dstBox,
704 if (dstBox->x1 == 0) {
705 x1 = drw_w - dstBox->x2;
706 drw_w = dstBox->x2;
708 if (dstBox->x2 == pScrn->frameX1) {
709 x2 = drw_w - (dstBox->x2 - dstBox->x1);
710 drw_w = (dstBox->x2 - dstBox->x1);
721 dstBox
688 Permedia3DisplayVideo(ScrnInfoPtr pScrn,int id,int offset,short width,short height,int x1,int y1,int x2,int y2,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h) argument
811 BoxRec dstBox; local in function:Permedia3PutImage
1119 BoxRec dstBox; local in function:Permedia3DisplaySurface
[all...]
/xsrc/external/mit/xf86-video-nv/dist/src/
H A Dnv_video.c62 BoxPtr dstBox,
478 BoxPtr dstBox,
508 dstBox->y1 <<= 1;
509 dstBox->y2 <<= 1;
518 pNv->PMC[(0x8948/4) + buffer] = (dstBox->y1 << 16) | dstBox->x1;
519 pNv->PMC[(0x8950/4) + buffer] = ((dstBox->y2 - dstBox->y1) << 16) |
520 (dstBox->x2 - dstBox
473 NVPutOverlayImage(ScrnInfoPtr pScrnInfo,int offset,int id,int dstPitch,BoxPtr dstBox,int x1,int y1,int x2,int y2,short width,short height,short src_w,short src_h,short drw_w,short drw_h,RegionPtr clipBoxes) argument
539 NVPutBlitImage(ScrnInfoPtr pScrnInfo,int offset,int id,int dstPitch,BoxPtr dstBox,int x1,int y1,int x2,int y2,short width,short height,short src_w,short src_h,short drw_w,short drw_h,RegionPtr clipBoxes) argument
1016 BoxRec dstBox; local in function:NVPutImage
1435 BoxRec dstBox; local in function:NVDisplaySurface
[all...]
/xsrc/external/mit/xf86-video-siliconmotion/dist/src/
H A Dsmi_video.c111 BoxPtr dstBox, short vid_w, short vid_h, short drw_w, short drw_h);
115 BoxPtr dstBox, short vid_w, short vid_h,
121 BoxPtr dstBox, short vid_w, short vid_h,
125 BoxPtr dstBox, short vid_w, short vid_h, short drw_w, short drw_h);
1023 BoxRec dstBox; local in function:SMI_PutVideo
1059 dstBox.x1 = drw_x;
1060 dstBox.y1 = drw_y;
1061 dstBox.x2 = drw_x + drw_w;
1062 dstBox.y2 = drw_y + drw_h;
1064 if(!xf86_crtc_clip_video_helper(pScrn, &crtc, crtcConf->crtc[0], &dstBox,
1498 BoxRec dstBox; local in function:SMI_PutImage
1737 SMI_DisplayVideo(ScrnInfoPtr pScrn,int id,int offset,short width,short height,int pitch,int x1,int y1,int x2,int y2,BoxPtr dstBox,short vid_w,short vid_h,short drw_w,short drw_h) argument
1810 SMI_DisplayVideo0501_CSC(ScrnInfoPtr pScrn,int id,int offset,short width,short height,int pitch,int x1,int y1,int x2,int y2,BoxPtr dstBox,short vid_w,short vid_h,short drw_w,short drw_h,RegionPtr clipboxes) argument
1921 SMI_DisplayVideo0501(ScrnInfoPtr pScrn,int id,int offset,short width,short height,int pitch,int x1,int y1,int x2,int y2,BoxPtr dstBox,short vid_w,short vid_h,short drw_w,short drw_h) argument
1997 SMI_DisplayVideo0730(ScrnInfoPtr pScrn,int id,int offset,short width,short height,int pitch,int x1,int y1,int x2,int y2,BoxPtr dstBox,short vid_w,short vid_h,short drw_w,short drw_h) argument
2453 BoxRec dstBox; local in function:SMI_DisplaySurface
[all...]
/xsrc/external/mit/xf86-video-intel-old/dist/src/
H A Di830_video.c1786 BoxPtr dstBox)
1796 dstBox->x1 -= crtc->x;
1797 dstBox->x2 -= crtc->x;
1798 dstBox->y1 -= crtc->y;
1799 dstBox->y2 -= crtc->y;
1802 tmp = dstBox->x1;
1803 dstBox->x1 = dstBox->y1 - crtc->x;
1804 dstBox->y1 = pScrn->virtualX - tmp - crtc->y;
1805 tmp = dstBox
1785 i830_update_dst_box_to_crtc_coords(ScrnInfoPtr pScrn,xf86CrtcPtr crtc,BoxPtr dstBox) argument
1976 i830_display_video(ScrnInfoPtr pScrn,xf86CrtcPtr crtc,int id,short width,short height,int dstPitch,int x1,int y1,int x2,int y2,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h) argument
2240 BoxRec dstBox; local in function:I830PutImage
2804 BoxRec dstBox; local in function:I830DisplaySurface
[all...]
H A Di810_video.c739 BoxPtr dstBox,
774 overlay->DWINPOS = (dstBox->y1 << 16) | (dstBox->x1);
775 overlay->DWINSZ = ((dstBox->y2 - dstBox->y1) << 16) |
776 (dstBox->x2 - dstBox->x1);
984 BoxRec dstBox; local in function:I810PutImage
993 dstBox.x1 = drw_x;
994 dstBox
733 I810DisplayVideo(ScrnInfoPtr pScrn,int id,short width,short height,int dstPitch,int x1,int y1,int x2,int y2,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h) argument
1331 BoxRec dstBox; local in function:I810DisplaySurface
[all...]
/xsrc/external/mit/xf86-video-nsc/dist/src/
H A Dnsc_gx2_video.c811 static BoxRec dstBox; variable in typeref:typename:BoxRec
937 BoxPtr dstBox,
972 pGeode->video_x = dstBox->x1;
973 pGeode->video_y = dstBox->y1;
985 GX2SetVideoPosition(dstBox->x1, dstBox->y1, width, height, src_w,
1059 dstBox.x1 = drw_x;
1060 dstBox.x2 = drw_x + drw_w;
1061 dstBox.y1 = drw_y;
1062 dstBox
931 GX2DisplayVideo(ScrnInfoPtr pScrn,int id,int offset,short width,short height,int pitch,int x1,int y1,int x2,int y2,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h) argument
1445 BoxRec dstBox; local in function:GX2DisplaySurface
[all...]
H A Dnsc_gx1_video.c859 static BoxRec dstBox; variable in typeref:typename:BoxRec
998 BoxPtr dstBox,
1027 if (dstBox->x1 < 0)
1031 dstBox->x1 += pGeode->TVOx;
1032 dstBox->y1 += pGeode->TVOy;
1035 pGeode->video_x = dstBox->x1;
1036 pGeode->video_y = dstBox->y1;
1050 GX1SetVideoPosition(dstBox->x1, dstBox->y1, width, height, src_w, src_h,
1124 dstBox
992 GX1DisplayVideo(ScrnInfoPtr pScrn,int id,int offset,short width,short height,int pitch,int x1,int y1,int x2,int y2,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h) argument
1504 BoxRec dstBox; local in function:GX1DisplaySurface
[all...]
/xsrc/external/mit/xf86-video-intel/dist/src/legacy/i810/
H A Di810_video.c739 BoxPtr dstBox,
774 overlay->DWINPOS = (dstBox->y1 << 16) | (dstBox->x1);
775 overlay->DWINSZ = ((dstBox->y2 - dstBox->y1) << 16) |
776 (dstBox->x2 - dstBox->x1);
984 BoxRec dstBox; local in function:I810PutImage
993 dstBox.x1 = drw_x;
994 dstBox
733 I810DisplayVideo(ScrnInfoPtr pScrn,int id,short width,short height,int dstPitch,int x1,int y1,int x2,int y2,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h) argument
1359 BoxRec dstBox; local in function:I810DisplaySurface
[all...]
/xsrc/external/mit/xf86-video-intel-2014/dist/src/legacy/i810/
H A Di810_video.c729 BoxPtr dstBox,
764 overlay->DWINPOS = (dstBox->y1 << 16) | (dstBox->x1);
765 overlay->DWINSZ = ((dstBox->y2 - dstBox->y1) << 16) |
766 (dstBox->x2 - dstBox->x1);
974 BoxRec dstBox; local in function:I810PutImage
983 dstBox.x1 = drw_x;
984 dstBox
723 I810DisplayVideo(ScrnInfoPtr pScrn,int id,short width,short height,int dstPitch,int x1,int y1,int x2,int y2,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h) argument
1316 BoxRec dstBox; local in function:I810DisplaySurface
[all...]
/xsrc/external/mit/xf86-video-trident/dist/src/
H A Dtrident_video.c616 BoxPtr dstBox,
647 tx1 = dstBox->x1 + pTrident->hsync;
648 tx2 = dstBox->x2 + pTrident->hsync + pTrident->hsync_rskew;
649 ty1 = dstBox->y1 + pTrident->vsync - 2;
650 ty2 = dstBox->y2 + pTrident->vsync + 2 + pTrident->vsync_bskew;
798 BoxRec dstBox; local in function:TRIDENTPutImage
807 dstBox.x1 = drw_x;
808 dstBox.x2 = drw_x + drw_w;
809 dstBox.y1 = drw_y;
810 dstBox
609 TRIDENTDisplayVideo(ScrnInfoPtr pScrn,int id,int offset,short width,short height,int pitch,int x1,int y1,int x2,int y2,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h) argument
1075 BoxRec dstBox; local in function:TRIDENTDisplaySurface
[all...]
/xsrc/external/mit/xf86-video-i740/dist/src/
H A Di740_video.c562 BoxPtr dstBox,
573 dstBox->x1,dstBox->y1, /* destination image pos to display */
574 dstBox->x2 - dstBox->x1,dstBox->y2 - dstBox->y1, /* destination image size to display allows trunc... */
640 BoxRec dstBox; local in function:I740PutImage
651 dstBox.x1 = drw_x;
652 dstBox
559 I740DisplayVideo(ScrnInfoPtr pScrn,int id,short width,short height,int dstPitch,int x1,int y1,int x2,int y2,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h,unsigned char vd_mod) argument
997 BoxRec dstBox; local in function:I740DisplaySurface
[all...]
/xsrc/external/mit/xf86-video-chips/dist/src/
H A Dct_video.c528 BoxPtr dstBox,
603 cPtr->writeMR(cPtr, 0x2A, ((cPtr->OverlaySkewX + dstBox->x1) & 0xFF));
605 tmp = (tmp & 0xF8) + (((cPtr->OverlaySkewX + dstBox->x1) >> 8) & 0x07);
608 cPtr->writeMR(cPtr, 0x2C, ((cPtr->OverlaySkewX + dstBox->x2 -1)
611 tmp = (tmp & 0xF8) + (((cPtr->OverlaySkewX + dstBox->x2 - 1) >> 8) & 0x07);
614 val = cPtr->OverlaySkewY + (dstBox->y1 << (dblscan ? 1 : 0));
620 val = cPtr->OverlaySkewY + (dstBox->y2 << (dblscan ? 1 : 0));
675 BoxRec dstBox; local in function:CHIPSPutImage
686 dstBox.x1 = drw_x;
687 dstBox
521 CHIPSDisplayVideo(ScrnInfoPtr pScrn,int id,int offset,short width,short height,int pitch,int x1,int y1,int x2,int y2,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h,Bool triggerBufSwitch) argument
988 BoxRec dstBox; local in function:CHIPSDisplaySurface
[all...]
/xsrc/external/mit/xf86-video-r128/dist/src/
H A Dr128_video.c659 BoxPtr dstBox,
720 OUTREG(R128_OV0_Y_X_START, dstBox->x1 | (dstBox->y1 << 16));
721 OUTREG(R128_OV0_Y_X_END, dstBox->x2 | (dstBox->y2 << 16));
750 BoxPtr dstBox,
814 OUTREG(R128_OV0_Y_X_START, dstBox->x1 | (dstBox->y1 << 16));
815 OUTREG(R128_OV0_Y_X_END, dstBox->x2 | (dstBox
652 R128DisplayVideo422(ScrnInfoPtr pScrn,int id,int offset,short width,short height,int pitch,int left,int right,int top,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h) argument
744 R128DisplayVideo420(ScrnInfoPtr pScrn,short width,short height,int pitch,int offset1,int offset2,int offset3,int left,int right,int top,BoxPtr dstBox,short src_w,short src_h,short drw_w,short drw_h) argument
861 BoxRec dstBox; local in function:R128PutImage
[all...]

Completed in 40 milliseconds

123