DateTim...ale::ko(3)

πŸ’…βœ¨ DateTime::Locale::ko βœ¨πŸ’…

so this is a page from the User Contributed Perl Documentation (it's in section (3) of the manual, iykyk) and it's literally all about the locale data for the Korean (ko) locale. bestie, it's giving reference material and honestly? iconic.


🌸 NAME 🌸

DateTime::Locale::ko β€” the locale data examples for the Korean (ko) locale, and the star of this whole show πŸ‘‘


πŸŽ€ DESCRIPTION πŸŽ€

okay so what this pod file is, is literally just a showcase. "This pod file contains examples of the locale data available for the Korean locale." That's the whole description, fr fr β€” everything after this sentence is just the data flexing on you. no cap. let's get into it 🫢


πŸ¦‹ Days πŸ¦‹

Wide (format)

μ›”μš”μΌ
ν™”μš”μΌ
μˆ˜μš”μΌ
λͺ©μš”일
κΈˆμš”μΌ
ν† μš”μΌ
μΌμš”μΌ

Abbreviated (format)

μ›”
ν™”
수
λͺ©
금
ν† 
일

Narrow (format)

μ›”
ν™”
수
λͺ©
금
ν† 
일

Wide (stand-alone)

μ›”μš”μΌ
ν™”μš”μΌ
μˆ˜μš”μΌ
λͺ©μš”일
κΈˆμš”μΌ
ν† μš”μΌ
μΌμš”μΌ

Abbreviated (stand-alone)

μ›”
ν™”
수
λͺ©
금
ν† 
일

Narrow (stand-alone)

μ›”
ν™”
수
λͺ©
금
ν† 
일

the way narrow and abbreviated are identical here? yeah bestie they're the same in Korean, that's the slay πŸ’…


🌸 Months 🌸

Wide (format)

1μ›”
2μ›”
3μ›”
4μ›”
5μ›”
6μ›”
7μ›”
8μ›”
9μ›”
10μ›”
11μ›”
12μ›”

Abbreviated (format)

1μ›”
2μ›”
3μ›”
4μ›”
5μ›”
6μ›”
7μ›”
8μ›”
9μ›”
10μ›”
11μ›”
12μ›”

Narrow (format)

1μ›”
2μ›”
3μ›”
4μ›”
5μ›”
6μ›”
7μ›”
8μ›”
9μ›”
10μ›”
11μ›”
12μ›”

Wide (stand-alone)

1μ›”
2μ›”
3μ›”
4μ›”
5μ›”
6μ›”
7μ›”
8μ›”
9μ›”
10μ›”
11μ›”
12μ›”

Abbreviated (stand-alone)

1μ›”
2μ›”
3μ›”
4μ›”
5μ›”
6μ›”
7μ›”
8μ›”
9μ›”
10μ›”
11μ›”
12μ›”

Narrow (stand-alone)

1μ›”
2μ›”
3μ›”
4μ›”
5μ›”
6μ›”
7μ›”
8μ›”
9μ›”
10μ›”
11μ›”
12μ›”

all six styles agreeing for the entire year? that's main character energy, no notes πŸŽ€


🌈 Quarters 🌈

Wide (format)

제 1/4λΆ„κΈ°
제 2/4λΆ„κΈ°
제 3/4λΆ„κΈ°
제 4/4λΆ„κΈ°

Abbreviated (format)

1λΆ„κΈ°
2λΆ„κΈ°
3λΆ„κΈ°
4λΆ„κΈ°

Narrow (format)

1
2
3
4

Wide (stand-alone)

제 1/4λΆ„κΈ°
제 2/4λΆ„κΈ°
제 3/4λΆ„κΈ°
제 4/4λΆ„κΈ°

Abbreviated (stand-alone)

1λΆ„κΈ°
2λΆ„κΈ°
3λΆ„κΈ°
4λΆ„κΈ°

Narrow (stand-alone)

1
2
3
4

narrow quarters are just raw digits and honestly? valid. no decoration needed 🧚


⭐ Eras ⭐

Wide (format)

기원전
μ„œκΈ°

Abbreviated (format)

BC
AD

Narrow (format)

BC
AD

not me noticing there's only three styles for eras, not six β€” that's the vibe check passing, don't come for me πŸ™ˆ


πŸ”₯ Date Formats πŸ”₯

okay so real talk, every single example below uses the same three test timestamps so you can compare: 2008-02-05T18:30:30, 1995-12-22T09:05:02, and -0010-09-15T04:44:23. iconic consistency, love that for us πŸ’–

Full

2008-02-05T18:30:30 = 2008λ…„ 2μ›” 5일 ν™”μš”μΌ
1995-12-22T09:05:02 = 1995λ…„ 12μ›” 22일 κΈˆμš”μΌ
-0010-09-15T04:44:23 = -10λ…„ 9μ›” 15일 ν† μš”μΌ

Long

2008-02-05T18:30:30 = 2008λ…„ 2μ›” 5일
1995-12-22T09:05:02 = 1995λ…„ 12μ›” 22일
-0010-09-15T04:44:23 = -10λ…„ 9μ›” 15일

Medium

2008-02-05T18:30:30 = 2008. 2. 5.
1995-12-22T09:05:02 = 1995. 12. 22.
-0010-09-15T04:44:23 = -10. 9. 15.

Short

2008-02-05T18:30:30 = 08. 2. 5.
1995-12-22T09:05:02 = 95. 12. 22.
-0010-09-15T04:44:23 = -10. 9. 15.

the way Short chops the year down to two digits for 2008 and 1995 but leaves -10 fully intact β€” that's the data, bestie, I don't make the rules 🫠


πŸ¦‹ Time Formats πŸ¦‹

Full

2008-02-05T18:30:30 = PM 6μ‹œ 30λΆ„ 30초 UTC
1995-12-22T09:05:02 = AM 9μ‹œ 5λΆ„ 2초 UTC
-0010-09-15T04:44:23 = AM 4μ‹œ 44λΆ„ 23초 UTC

Long

2008-02-05T18:30:30 = PM 6μ‹œ 30λΆ„ 30초 UTC
1995-12-22T09:05:02 = AM 9μ‹œ 5λΆ„ 2초 UTC
-0010-09-15T04:44:23 = AM 4μ‹œ 44λΆ„ 23초 UTC

Medium

2008-02-05T18:30:30 = PM 6:30:30
1995-12-22T09:05:02 = AM 9:05:02
-0010-09-15T04:44:23 = AM 4:44:23

Short

2008-02-05T18:30:30 = PM 6:30
1995-12-22T09:05:02 = AM 9:05
-0010-09-15T04:44:23 = AM 4:44

Full and Long being identical here is not a typo, it's just how it is β€” the more you know 🌈


πŸ’œ Datetime Formats πŸ’œ

Full

2008-02-05T18:30:30 = 2008λ…„ 2μ›” 5일 ν™”μš”μΌ PM 6μ‹œ 30λΆ„ 30초 UTC
1995-12-22T09:05:02 = 1995λ…„ 12μ›” 22일 κΈˆμš”μΌ AM 9μ‹œ 5λΆ„ 2초 UTC
-0010-09-15T04:44:23 = -10λ…„ 9μ›” 15일 ν† μš”μΌ AM 4μ‹œ 44λΆ„ 23초 UTC

Long

2008-02-05T18:30:30 = 2008λ…„ 2μ›” 5일 PM 6μ‹œ 30λΆ„ 30초 UTC
1995-12-22T09:05:02 = 1995λ…„ 12μ›” 22일 AM 9μ‹œ 5λΆ„ 2초 UTC
-0010-09-15T04:44:23 = -10λ…„ 9μ›” 15일 AM 4μ‹œ 44λΆ„ 23초 UTC

Medium

2008-02-05T18:30:30 = 2008. 2. 5. PM 6:30:30
1995-12-22T09:05:02 = 1995. 12. 22. AM 9:05:02
-0010-09-15T04:44:23 = -10. 9. 15. AM 4:44:23

Short

2008-02-05T18:30:30 = 08. 2. 5. PM 6:30
1995-12-22T09:05:02 = 95. 12. 22. AM 9:05
-0010-09-15T04:44:23 = -10. 9. 15. AM 4:44

datetime is literally just the date and the time holding hands, obsessed 🫢


πŸ‘‘ Available Formats πŸ‘‘

okay this is the big one bestie β€” every entry below is a named format, and the label is code (pattern) so you know exactly which pattern produces which output. pace yourself, hydrate, let's go πŸ”₯

Bh (B hμ‹œ)

2008-02-05T18:30:30 = B 6μ‹œ
1995-12-22T09:05:02 = B 9μ‹œ
-0010-09-15T04:44:23 = B 4μ‹œ

Bhm (B h:mm)

2008-02-05T18:30:30 = B 6:30
1995-12-22T09:05:02 = B 9:05
-0010-09-15T04:44:23 = B 4:44

Bhms (B h:mm:ss)

2008-02-05T18:30:30 = B 6:30:30
1995-12-22T09:05:02 = B 9:05:02
-0010-09-15T04:44:23 = B 4:44:23

E (ccc)

2008-02-05T18:30:30 = ν™”
1995-12-22T09:05:02 = 금
-0010-09-15T04:44:23 = ν† 

EBhm ((E) B h:mm)

2008-02-05T18:30:30 = (ν™”) B 6:30
1995-12-22T09:05:02 = (금) B 9:05
-0010-09-15T04:44:23 = (ν† ) B 4:44

EBhms ((E) B h:mm:ss)

2008-02-05T18:30:30 = (ν™”) B 6:30:30
1995-12-22T09:05:02 = (금) B 9:05:02
-0010-09-15T04:44:23 = (ν† ) B 4:44:23

EEEEd (d일 EEEE)

2008-02-05T18:30:30 = 5일 ν™”μš”μΌ
1995-12-22T09:05:02 = 22일 κΈˆμš”μΌ
-0010-09-15T04:44:23 = 15일 ν† μš”μΌ

EHm ((E) HH:mm)

2008-02-05T18:30:30 = (ν™”) 18:30
1995-12-22T09:05:02 = (금) 09:05
-0010-09-15T04:44:23 = (ν† ) 04:44

EHms ((E) HH:mm:ss)

2008-02-05T18:30:30 = (ν™”) 18:30:30
1995-12-22T09:05:02 = (금) 09:05:02
-0010-09-15T04:44:23 = (ν† ) 04:44:23

Ed (d일 (E))

2008-02-05T18:30:30 = 5일 (ν™”)
1995-12-22T09:05:02 = 22일 (금)
-0010-09-15T04:44:23 = 15일 (ν† )

Ehm ((E) a h:mm)

2008-02-05T18:30:30 = (ν™”) PM 6:30
1995-12-22T09:05:02 = (금) AM 9:05
-0010-09-15T04:44:23 = (ν† ) AM 4:44

Ehms ((E) a h:mm:ss)

2008-02-05T18:30:30 = (ν™”) PM 6:30:30
1995-12-22T09:05:02 = (금) AM 9:05:02
-0010-09-15T04:44:23 = (ν† ) AM 4:44:23

Gy (G yλ…„)

2008-02-05T18:30:30 = AD 2008λ…„
1995-12-22T09:05:02 = AD 1995λ…„
-0010-09-15T04:44:23 = BC -10λ…„

GyMMM (G yλ…„ MMM)

2008-02-05T18:30:30 = AD 2008λ…„ 2μ›”
1995-12-22T09:05:02 = AD 1995λ…„ 12μ›”
-0010-09-15T04:44:23 = BC -10λ…„ 9μ›”

GyMMMEEEEd (G yλ…„ MMM d일 EEEE)

2008-02-05T18:30:30 = AD 2008λ…„ 2μ›” 5일 ν™”μš”μΌ
1995-12-22T09:05:02 = AD 1995λ…„ 12μ›” 22일 κΈˆμš”μΌ
-0010-09-15T04:44:23 = BC -10λ…„ 9μ›” 15일 ν† μš”μΌ

GyMMMEd (G yλ…„ MMM d일 (E))

2008-02-05T18:30:30 = AD 2008λ…„ 2μ›” 5일 (ν™”)
1995-12-22T09:05:02 = AD 1995λ…„ 12μ›” 22일 (금)
-0010-09-15T04:44:23 = BC -10λ…„ 9μ›” 15일 (ν† )

GyMMMd (G yλ…„ MMM d일)

2008-02-05T18:30:30 = AD 2008λ…„ 2μ›” 5일
1995-12-22T09:05:02 = AD 1995λ…„ 12μ›” 22일
-0010-09-15T04:44:23 = BC -10λ…„ 9μ›” 15일

GyMd (GGGGG y/M/d)

2008-02-05T18:30:30 = AD 2008/2/5
1995-12-22T09:05:02 = AD 1995/12/22
-0010-09-15T04:44:23 = BC -10/9/15

H (Hμ‹œ)

2008-02-05T18:30:30 = 18μ‹œ
1995-12-22T09:05:02 = 9μ‹œ
-0010-09-15T04:44:23 = 4μ‹œ

HHmmss (HH:mm:ss)

2008-02-05T18:30:30 = 18:30:30
1995-12-22T09:05:02 = 09:05:02
-0010-09-15T04:44:23 = 04:44:23

Hm (HH:mm)

2008-02-05T18:30:30 = 18:30
1995-12-22T09:05:02 = 09:05
-0010-09-15T04:44:23 = 04:44

Hms (Hμ‹œ mλΆ„ s초)

2008-02-05T18:30:30 = 18μ‹œ 30λΆ„ 30초
1995-12-22T09:05:02 = 9μ‹œ 5λΆ„ 2초
-0010-09-15T04:44:23 = 4μ‹œ 44λΆ„ 23초

Hmsv (Hμ‹œ mλΆ„ s초 v)

2008-02-05T18:30:30 = 18μ‹œ 30λΆ„ 30초 UTC
1995-12-22T09:05:02 = 9μ‹œ 5λΆ„ 2초 UTC
-0010-09-15T04:44:23 = 4μ‹œ 44λΆ„ 23초 UTC

Hmv (HH:mm v)

2008-02-05T18:30:30 = 18:30 UTC
1995-12-22T09:05:02 = 09:05 UTC
-0010-09-15T04:44:23 = 04:44 UTC

M (Mμ›”)

2008-02-05T18:30:30 = 2μ›”
1995-12-22T09:05:02 = 12μ›”
-0010-09-15T04:44:23 = 9μ›”

MEEEEd (M. d. EEEE)

2008-02-05T18:30:30 = 2. 5. ν™”μš”μΌ
1995-12-22T09:05:02 = 12. 22. κΈˆμš”μΌ
-0010-09-15T04:44:23 = 9. 15. ν† μš”μΌ

MEd (M. d. (E))

2008-02-05T18:30:30 = 2. 5. (ν™”)
1995-12-22T09:05:02 = 12. 22. (금)
-0010-09-15T04:44:23 = 9. 15. (ν† )

MMM (LLL)

2008-02-05T18:30:30 = 2μ›”
1995-12-22T09:05:02 = 12μ›”
-0010-09-15T04:44:23 = 9μ›”

MMMEEEEd (MMM d일 EEEE)

2008-02-05T18:30:30 = 2μ›” 5일 ν™”μš”μΌ
1995-12-22T09:05:02 = 12μ›” 22일 κΈˆμš”μΌ
-0010-09-15T04:44:23 = 9μ›” 15일 ν† μš”μΌ

MMMEd (MMM d일 (E))

2008-02-05T18:30:30 = 2μ›” 5일 (ν™”)
1995-12-22T09:05:02 = 12μ›” 22일 (금)
-0010-09-15T04:44:23 = 9μ›” 15일 (ν† )

MMMMW-count-other (MMMM W번째 주)

2008-02-05T18:30:30 = 2μ›” 1번째 μ£Ό
1995-12-22T09:05:02 = 12μ›” 3번째 μ£Ό
-0010-09-15T04:44:23 = 9μ›” 2번째 μ£Ό

MMMMd (MMMM d일)

2008-02-05T18:30:30 = 2μ›” 5일
1995-12-22T09:05:02 = 12μ›” 22일
-0010-09-15T04:44:23 = 9μ›” 15일

MMMd (MMM d일)

2008-02-05T18:30:30 = 2μ›” 5일
1995-12-22T09:05:02 = 12μ›” 22일
-0010-09-15T04:44:23 = 9μ›” 15일

Md (M. d.)

2008-02-05T18:30:30 = 2. 5.
1995-12-22T09:05:02 = 12. 22.
-0010-09-15T04:44:23 = 9. 15.

d (d일)

2008-02-05T18:30:30 = 5일
1995-12-22T09:05:02 = 22일
-0010-09-15T04:44:23 = 15일

h (a hμ‹œ)

2008-02-05T18:30:30 = PM 6μ‹œ
1995-12-22T09:05:02 = AM 9μ‹œ
-0010-09-15T04:44:23 = AM 4μ‹œ

hm (a h:mm)

2008-02-05T18:30:30 = PM 6:30
1995-12-22T09:05:02 = AM 9:05
-0010-09-15T04:44:23 = AM 4:44

hms (a h:mm:ss)

2008-02-05T18:30:30 = PM 6:30:30
1995-12-22T09:05:02 = AM 9:05:02
-0010-09-15T04:44:23 = AM 4:44:23

hmsv (a h:mm:ss v)

2008-02-05T18:30:30 = PM 6:30:30 UTC
1995-12-22T09:05:02 = AM 9:05:02 UTC
-0010-09-15T04:44:23 = AM 4:44:23 UTC

hmv (a h:mm v)

2008-02-05T18:30:30 = PM 6:30 UTC
1995-12-22T09:05:02 = AM 9:05 UTC
-0010-09-15T04:44:23 = AM 4:44 UTC

mmss (mm:ss)

2008-02-05T18:30:30 = 30:30
1995-12-22T09:05:02 = 05:02
-0010-09-15T04:44:23 = 44:23

ms (mm:ss)

2008-02-05T18:30:30 = 30:30
1995-12-22T09:05:02 = 05:02
-0010-09-15T04:44:23 = 44:23
lowkey obsessed that mmss and ms share the exact same pattern and the exact same outputs β€” yes, that's literally what the page says, and yes, I'm pointing it out πŸ’€

and that's the end of the Available Formats list β€” part 2 has the rest, keep scrolling bestie πŸ’–

y (yλ…„)

Just the year, bestie. That's the whole vibe. πŸ—“οΈ

2008-02-05T18:30:30 = 2008λ…„
1995-12-22T09:05:02 = 1995λ…„
-0010-09-15T04:44:23 = -10λ…„

yM (y. M.)

Year plus month, dotted and dotted. Periodt. πŸ’…

2008-02-05T18:30:30 = 2008. 2.
1995-12-22T09:05:02 = 1995. 12.
-0010-09-15T04:44:23 = -10. 9.

yMEEEEd (y. M. d. EEEE)

The full-spellout weekday one β€” she's giving main character energy, showing off the whole day name. πŸ‘‘

2008-02-05T18:30:30 = 2008. 2. 5. ν™”μš”μΌ
1995-12-22T09:05:02 = 1995. 12. 22. κΈˆμš”μΌ
-0010-09-15T04:44:23 = -10. 9. 15. ν† μš”μΌ

yMEd (y. M. d. (E))

Same but the weekday's in parentheses and abbreviated β€” lowkey the introvert version of the one above. πŸ™ˆ

2008-02-05T18:30:30 = 2008. 2. 5. (ν™”)
1995-12-22T09:05:02 = 1995. 12. 22. (금)
-0010-09-15T04:44:23 = -10. 9. 15. (ν† )

yMM (y. M.)

Double-M year-and-month, and no the output isn't different from yM here β€” it just is what it is. Not me questioning the data fr fr. 😭

2008-02-05T18:30:30 = 2008. 2.
1995-12-22T09:05:02 = 1995. 12.
-0010-09-15T04:44:23 = -10. 9.

yMMM (yλ…„ MMM)

Year + abbreviated month with the λ…„ and μ›” units doing their thing. Obsessed. ✨

2008-02-05T18:30:30 = 2008λ…„ 2μ›”
1995-12-22T09:05:02 = 1995λ…„ 12μ›”
-0010-09-15T04:44:23 = -10λ…„ 9μ›”

yMMMEEEEd (yλ…„ MMM d일 EEEE)

Okay this one ate β€” full year, month, day and the entire weekday name. The most extra (affectionate). πŸŽ€

2008-02-05T18:30:30 = 2008λ…„ 2μ›” 5일 ν™”μš”μΌ
1995-12-22T09:05:02 = 1995λ…„ 12μ›” 22일 κΈˆμš”μΌ
-0010-09-15T04:44:23 = -10λ…„ 9μ›” 15일 ν† μš”μΌ

yMMMEd (yλ…„ MMM d일 (E))

Same energy but the weekday's tucked into parens and shortened. Cute and compact. πŸ¦‹

2008-02-05T18:30:30 = 2008λ…„ 2μ›” 5일 (ν™”)
1995-12-22T09:05:02 = 1995λ…„ 12μ›” 22일 (금)
-0010-09-15T04:44:23 = -10λ…„ 9μ›” 15일 (ν† )

yMMMM (yλ…„ MMMM)

Quad-M month, year-first. Same result as yMMM here β€” again, just reporting the facts. 🫢

2008-02-05T18:30:30 = 2008λ…„ 2μ›”
1995-12-22T09:05:02 = 1995λ…„ 12μ›”
-0010-09-15T04:44:23 = -10λ…„ 9μ›”

yMMMd (yλ…„ MMM d일)

Year, month, day with the Korean units attached. No weekday invited to this party. 🌸

2008-02-05T18:30:30 = 2008λ…„ 2μ›” 5일
1995-12-22T09:05:02 = 1995λ…„ 12μ›” 22일
-0010-09-15T04:44:23 = -10λ…„ 9μ›” 15일

yMd (y. M. d.)

All dots, all numbers, zero units. Minimalist queen. 🀍

2008-02-05T18:30:30 = 2008. 2. 5.
1995-12-22T09:05:02 = 1995. 12. 22.
-0010-09-15T04:44:23 = -10. 9. 15.

yQQQ (yλ…„ QQQ)

Quarter representation, short and sweet β€” λΆ„κΈ° means quarter and she said it in three letters. πŸ“Š

2008-02-05T18:30:30 = 2008λ…„ 1λΆ„κΈ°
1995-12-22T09:05:02 = 1995λ…„ 4λΆ„κΈ°
-0010-09-15T04:44:23 = -10λ…„ 3λΆ„κΈ°

yQQQQ (yλ…„ QQQQ)

The formal quarter flex β€” the "제 1/4λΆ„κΈ°" style. Very business-casual, very slay. πŸ’Ό

2008-02-05T18:30:30 = 2008λ…„ 제 1/4λΆ„κΈ°
1995-12-22T09:05:02 = 1995λ…„ 제 4/4λΆ„κΈ°
-0010-09-15T04:44:23 = -10λ…„ 제 3/4λΆ„κΈ°

yw-count-other (Yλ…„ w번째 μ£Ό)

Week-of-year, counted with the other plural rule, and the label literally says Yλ…„ w번째 μ£Ό. Iykyk. πŸ”₯

2008-02-05T18:30:30 = 2008λ…„ 6번째 μ£Ό
1995-12-22T09:05:02 = 1995λ…„ 51번째 μ£Ό
-0010-09-15T04:44:23 = -10λ…„ 37번째 μ£Ό

πŸ’œ Miscellaneous πŸ’œ

The little extra settings, the garnish of the locale world. πŸ“

  • Prefers 24 hour time? β€” No
  • Local first day of the week β€” 1 (μ›”μš”μΌ)

🌈 Strftime Patterns 🌈

The classic strftime crew, translated to Korean. Each one comes with its own pattern-of-record in the parens and a demo date so you can see it in action. ⭐

%c (%a %b %e %H:%M:%S %Y) β€” date time format

The whole date and time together, the full look. ✨

2008-02-05T18:30:30 = ν™” 2μ›”  5 18:30:30 2008
1995-12-22T09:05:02 = 금 12μ›” 22 09:05:02 1995
-0010-09-15T04:44:23 = ν†  9μ›” 15 04:44:23 -10

%x (%m/%d/%y) β€” date format

The date on its own, slashed up. πŸ—“οΈ

2008-02-05T18:30:30 = 02/05/08
1995-12-22T09:05:02 = 12/22/95
-0010-09-15T04:44:23 = 09/15/10

%X (%H:%M:%S) β€” time format

And the time-only one, colon-separated, doing exactly what it says on the tin. ⏰

2008-02-05T18:30:30 = 18:30:30
1995-12-22T09:05:02 = 09:05:02
-0010-09-15T04:44:23 = 04:44:23

🫢 SUPPORT 🫢

Need more? Go see DateTime::Locale, that's the one. πŸ’–


And that's a wrap, bestie! πŸŽ€ This page came from perl v5.42.0, dated 2024-12-12, and it's DateTime::Locale::ko(3) all day long. Go format some dates responsibly. πŸ’…βœ¨

πŸ“¦ where this page comes from