diff --git a/Dockerfile b/Dockerfile index 724cbdfbe..e647a12f8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,7 +26,6 @@ RUN mkdir /dm_media RUN mkdir /songs RUN mkdir /temp_songs RUN mkdir /videos -RUN mkdir /orgies RUN mkdir /audio RUN mkdir /asset_submissions RUN mkdir /asset_submissions/emojis diff --git a/docker-compose.yml b/docker-compose.yml index 681c2ad3b..d313f4262 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -40,7 +40,8 @@ services: - "./seed-users.sql:/docker-entrypoint-initdb.d/01-seed-users.sql" - "./seed-badges.sql:/docker-entrypoint-initdb.d/02-seed-badges.sql" - "./seed-hats.sql:/docker-entrypoint-initdb.d/03-seed-hats.sql" - - "./seed-emojis.sql:/docker-entrypoint-initdb.d/04-seed-emojis.sql" + - "./seed-emojis-rDrama.sql:/docker-entrypoint-initdb.d/04-seed-emojis-rDrama.sql" + - "./seed-emojis-WPD.sql:/docker-entrypoint-initdb.d/04-seed-emojis-WPD.sql" environment: - POSTGRES_HOST_AUTH_METHOD=trust ports: diff --git a/files/assets/1.vtt b/files/assets/1.vtt new file mode 100644 index 000000000..4dfa105fc --- /dev/null +++ b/files/assets/1.vtt @@ -0,0 +1,5883 @@ +WEBVTT + +00:01:42.716 --> 00:01:44.385 +All the food's gonna go bad + +00:01:47.053 --> 00:01:48.304 +Yeah, I drew up a list + +00:01:48.388 --> 00:01:51.641 +I'll hit the store +before it gets all bought out + +00:01:54.394 --> 00:01:55.395 +Fuck + +00:01:55.478 --> 00:01:57.939 +- Can you save it? +- No. No way + +00:01:58.022 --> 00:02:00.608 +No, I gotta start over from scratch + +00:02:00.692 --> 00:02:02.944 +I'll call the studio +when the phones get back up, + +00:02:03.027 --> 00:02:04.612 +see if they can extend my deadline + +00:02:05.864 --> 00:02:07.490 +What choice do they have? + +00:02:10.201 --> 00:02:11.160 +You kiddin'? + +00:02:11.244 --> 00:02:14.079 +They could whip up some bad +Photoshop poster in an afternoon + +00:02:14.162 --> 00:02:16.415 +They do it all the time +Two big heads + +00:02:16.498 --> 00:02:18.375 +I should have brought it downstairs +with me last night + +00:02:18.458 --> 00:02:20.127 +Just stupid, I guess + +00:02:20.210 --> 00:02:22.170 +Well, sweetie, +you couldn't exactly know + +00:02:22.254 --> 00:02:24.214 +that a tree was gonna come flying +through the window + +00:02:24.256 --> 00:02:25.716 +Yeah, I'll hit the hardware store too, + +00:02:25.757 --> 00:02:27.342 +get some plastic sheeting +and duct tape + +00:02:27.384 --> 00:02:29.553 +and seal this up +before it gets dark, you know + +00:02:29.636 --> 00:02:31.221 +Order in some new glass + +00:02:32.723 --> 00:02:34.057 +Oh, you know what? +That was your... + +00:02:34.099 --> 00:02:36.685 +that was your grandfather's tree, +the one he planted + +00:02:36.727 --> 00:02:39.479 +Used to play in that tree + +00:02:39.563 --> 00:02:40.689 +It's just stuff, though + +00:02:40.772 --> 00:02:43.316 +You know, we're safe +That's all that counts + +00:02:43.399 --> 00:02:44.525 +Yeah + +00:02:44.609 --> 00:02:46.110 +Mom, Dad, you gotta come see! + +00:02:46.193 --> 00:02:47.904 +Hey, Billy, take it easy, +all right? + +00:02:47.987 --> 00:02:49.697 +I really dont want you running +all over the place + +00:02:49.780 --> 00:02:50.865 +But you gotta come look + +00:02:50.948 --> 00:02:53.951 +The boathouse is all bashed! +Holy crap! + +00:02:54.035 --> 00:02:55.203 +Billy + +00:02:55.244 --> 00:02:58.331 +Sorry, Mom, but you just +gotta come! Come on! + +00:03:01.334 --> 00:03:03.252 +Come on + +00:03:03.336 --> 00:03:05.254 +Having spoken, +the Doomsayer departs + +00:03:05.338 --> 00:03:07.924 +Come on! + +00:03:08.007 --> 00:03:10.008 +How do you two always manage +to make me laugh? + +00:03:11.009 --> 00:03:13.720 +You have incredibly low standards + +00:03:13.803 --> 00:03:16.848 +Let's go, uh, see the damage + +00:03:16.932 --> 00:03:17.891 +No + +00:03:22.854 --> 00:03:24.898 +- Norton's tree +- Yeah + +00:03:26.524 --> 00:03:28.443 +You mean the dead one +I've been asking him + +00:03:28.527 --> 00:03:30.695 +to take down for three years +before it finally blew over? + +00:03:30.779 --> 00:03:31.738 +That tree? + +00:03:32.948 --> 00:03:35.992 +- Really got smooshed +- You ain't kiddin' + +00:03:37.368 --> 00:03:39.078 +Look at that + +00:03:41.372 --> 00:03:42.498 +What is it, Daddy? + +00:03:43.499 --> 00:03:44.500 +Mist + +00:03:46.043 --> 00:03:48.963 +- On the lake? +- We've had mist on the lake before + +00:03:49.004 --> 00:03:50.965 +Coming off the mountain like that? + +00:03:51.006 --> 00:03:53.509 +Two fronts meeting, + +00:03:53.592 --> 00:03:55.803 +left over from the storm, +something like that + +00:03:55.886 --> 00:03:57.388 +You sure? + +00:03:57.471 --> 00:03:58.889 +Honey, I'm not the weatherman + +00:03:58.973 --> 00:04:01.100 +Why don't you take Billy, +get him dressed + +00:04:01.183 --> 00:04:02.518 +I'll take him to town with me + +00:04:02.601 --> 00:04:03.978 +Okay Where you going? + +00:04:04.061 --> 00:04:07.146 +I'm gonna go have a little chat +with our neighbour about his tree + +00:04:07.230 --> 00:04:08.314 +Hon + +00:04:08.398 --> 00:04:10.400 +Dont worry, I'm not gonna +punch him in the nose + +00:04:10.483 --> 00:04:11.818 +You know what he's gonna say + +00:04:11.860 --> 00:04:14.904 +He's gonna say, "Sue me," +which, I don't know, maybe we should + +00:04:14.988 --> 00:04:17.782 +Honey, one property dispute +with this guy + +00:04:17.824 --> 00:04:19.284 +is enough to last me a lifetime + +00:04:19.325 --> 00:04:21.995 +I'm gonna ask +for his insurance information + +00:04:22.078 --> 00:04:23.079 +Okay + +00:04:23.162 --> 00:04:25.123 +- That's all +- Yeah + +00:04:28.042 --> 00:04:30.670 +Ohh! +Mother fucker! + +00:04:33.839 --> 00:04:35.340 +Aw, shit! + +00:04:35.382 --> 00:04:37.843 +Ohh, you mother fucker! + +00:04:39.177 --> 00:04:40.178 +Cock sucker! + +00:04:42.347 --> 00:04:43.348 +"Turn on + +00:04:43.432 --> 00:04:45.642 +"Full choke + +00:04:45.684 --> 00:04:47.853 +Pull five choke" + +00:04:52.316 --> 00:04:53.817 +I guess youve seen the... + +00:04:55.360 --> 00:04:56.361 +boathouse + +00:04:56.445 --> 00:04:57.779 +Yeah, and...? + +00:04:57.863 --> 00:04:59.488 +Nothin' + +00:04:59.530 --> 00:05:02.867 +Just think we should trade +insurance info, you know? + +00:05:02.950 --> 00:05:03.951 +That's all + +00:05:06.662 --> 00:05:09.165 +Oh, my insurance guy's +gonna love me + +00:05:12.001 --> 00:05:13.377 +Oh + +00:05:13.419 --> 00:05:15.421 +Shit The 1980 + +00:05:15.504 --> 00:05:17.381 +I was gonna bring +the station wagon, but + +00:05:18.841 --> 00:05:20.676 +I don't know, the weather was +so beautiful coming out of New York, + +00:05:20.718 --> 00:05:22.970 +I just... +You know, top down + +00:05:23.054 --> 00:05:24.764 +I'm sorry, man I mean it + +00:05:24.847 --> 00:05:26.349 +Sincerely + +00:05:28.016 --> 00:05:30.685 +- That's nice of you to say +- No, that car was cherry + +00:05:30.769 --> 00:05:32.395 +I hate to see it like that + +00:05:35.357 --> 00:05:36.858 +Okay, I'll tell you what, + +00:05:36.900 --> 00:05:39.694 +I'll find my insurance guy's number, +I'll bring it by later + +00:05:39.778 --> 00:05:41.363 +- That okay? +- No problem + +00:05:47.702 --> 00:05:48.662 +So, uh, David... + +00:05:50.539 --> 00:05:53.875 +youre not heading into town today +by any chance, are you? + +00:06:08.806 --> 00:06:10.474 +Well, CMP's out in force + +00:06:11.809 --> 00:06:12.977 +Maybe we'll get our power back + +00:06:13.561 --> 00:06:15.062 +I know Some storm, huh? + +00:06:15.145 --> 00:06:16.438 +One for the books, yeah + +00:06:16.522 --> 00:06:18.190 +For a moment there last night, + +00:06:18.274 --> 00:06:20.693 +I thought we were gonna take off +and head for Oz + +00:06:20.776 --> 00:06:22.819 +WZON is off the air, + +00:06:22.902 --> 00:06:25.113 +but Portland's still broadcasting + +00:06:25.196 --> 00:06:26.197 +Daddy, look + +00:06:26.781 --> 00:06:28.116 +Ah + +00:06:28.157 --> 00:06:30.034 +guys from the base + +00:06:30.118 --> 00:06:31.661 +- From up the mountain? +- Uh-huh + +00:06:31.744 --> 00:06:33.329 +The Arrowhead Project? + +00:06:35.164 --> 00:06:36.165 +Well, youre a local + +00:06:36.249 --> 00:06:38.001 +Any idea what they do up there? + +00:06:38.084 --> 00:06:39.586 +Missile defence research + +00:06:39.627 --> 00:06:41.462 +You know, I'm sure +youve heard the stories + +00:06:41.546 --> 00:06:42.547 +Oh, sure + +00:06:42.630 --> 00:06:45.008 +The woman at the Laundromat +say that, uh, + +00:06:45.091 --> 00:06:48.177 +they have a crashed flying saucer +up there with frozen alien bodies + +00:06:48.261 --> 00:06:50.013 +Right Miss Edna Yeah + +00:06:50.095 --> 00:06:52.681 +Miss Tabloid + +00:06:52.764 --> 00:06:55.434 +"I Had Bigfoot's Baby" + +00:06:56.685 --> 00:06:59.271 +"Satan's Face Appears +in Oil Well Fire" + +00:06:59.313 --> 00:07:00.647 +You know, real reliable stuff + +00:07:05.402 --> 00:07:06.904 +Well, they're in a hurry + +00:07:06.987 --> 00:07:08.614 +Maybe their power's out too + +00:07:17.872 --> 00:07:18.873 +Huh Still no signal + +00:07:19.457 --> 00:07:22.126 +Why don't you go ahead? +I'm gonna try Steph on a pay phone + +00:07:22.210 --> 00:07:23.920 +Can I go with Mr Norton, Daddy? + +00:07:24.003 --> 00:07:26.797 +Sure, if you promise +to hold his hand, I guess + +00:07:26.839 --> 00:07:27.840 +Yeah +- Yeah + +00:07:27.924 --> 00:07:29.508 +Here's a list + +00:07:29.592 --> 00:07:30.927 +- Sure +- Okay? + +00:07:31.010 --> 00:07:32.178 +Meet you guys in there + +00:07:34.263 --> 00:07:35.264 +Hold hands + +00:07:39.101 --> 00:07:41.354 +I'm sorry I didn't know +it was your sister + +00:07:45.857 --> 00:07:47.901 +That looks so freaky! + +00:07:47.984 --> 00:07:48.944 +Hmm + +00:07:56.868 --> 00:07:58.411 +- Sally, hey +- Hey, Mr Drayton on + +00:07:58.495 --> 00:08:00.038 +You guys look jammed up + +00:08:00.121 --> 00:08:03.250 +Yeah, well, half the staff +didn't show, plus the power's out + +00:08:03.333 --> 00:08:05.669 +Oh, no What, +no backup generator? + +00:08:05.710 --> 00:08:07.212 +Only to keep the food cold + +00:08:07.295 --> 00:08:08.838 +Everything else, +welcome to the Dark Ages, + +00:08:08.922 --> 00:08:10.006 +and bring your check book + +00:08:10.090 --> 00:08:12.592 +Hey, Thursday night, +Steph and I want a date night + +00:08:12.676 --> 00:08:15.094 +- Baby-sit? +- Heck, yeah I'm there + +00:08:16.637 --> 00:08:17.721 +Oh, my God + +00:08:17.805 --> 00:08:19.306 +The storm + +00:08:19.390 --> 00:08:22.476 +Every body's stockin' up +Been like this since we opened + +00:08:22.560 --> 00:08:23.686 +Crappy day, huh? + +00:08:23.769 --> 00:08:26.272 +Eh, every one's a little +pissed off this morning + +00:08:26.355 --> 00:08:28.190 +'Morning, Mrs Carmody + +00:08:29.316 --> 00:08:31.902 +With lines like these, +I don't know how good it is, + +00:08:31.986 --> 00:08:34.196 +but I guess we'll have to make do + +00:08:35.155 --> 00:08:37.700 +- Keep your head down, pal +- I know it + +00:08:41.494 --> 00:08:42.495 +Hey, champ + +00:08:43.663 --> 00:08:44.998 +Your wife should be a doctor + +00:08:45.081 --> 00:08:47.208 +She could make a fortune +in Manhattan with this handwriting + +00:08:47.292 --> 00:08:50.086 +Yeah, it takes some getting used to + +00:08:50.169 --> 00:08:52.338 +Why don't you get your stuff? +I'll meet you at the checkout + +00:08:52.422 --> 00:08:53.381 +Okay, done + +00:08:56.175 --> 00:08:59.304 +Hey, David, +thanks for helping me out today + +00:09:03.099 --> 00:09:05.101 +Are you and Mr Norton +gonna be friends now, Daddy? + +00:09:05.185 --> 00:09:06.728 +Oh, I don't know + +00:09:08.104 --> 00:09:10.105 +"Friends" might be +stretching it a little + +00:09:11.106 --> 00:09:13.483 +I guess youre not mad +at each other any more + +00:09:13.567 --> 00:09:14.568 +I guess not + +00:09:16.278 --> 00:09:17.946 +And that's a start, huh? + +00:09:18.989 --> 00:09:20.991 +I'm sorry, ma'am, +the registers are down + +00:09:21.074 --> 00:09:23.076 +The power outage got us too + +00:09:23.118 --> 00:09:25.787 +Hopefully we'll have +power up pretty soon + +00:09:35.631 --> 00:09:38.341 +- The bus leaves in 30 minutes +- We'll make it, okay? + +00:09:38.424 --> 00:09:40.426 +You guys get the goodies +I'll wait in line + +00:09:45.806 --> 00:09:47.767 +I need some change +on register five + +00:09:49.393 --> 00:09:51.437 +Good morning, Ms Reppler + +00:09:51.479 --> 00:09:52.772 +Hello, Ms Reppler + +00:09:52.813 --> 00:09:55.983 +Well, hello to you, Billy Drayton on + +00:09:56.067 --> 00:09:57.735 +How'd you hold up in the storm? + +00:09:57.818 --> 00:09:59.946 +We had a tree come through +the picture window last night, + +00:10:00.029 --> 00:10:01.197 +right in my studio + +00:10:01.280 --> 00:10:04.241 +And the boathouse got all smooshed +Mr Norton's tree fell on it + +00:10:04.324 --> 00:10:05.283 +Ouch + +00:10:05.367 --> 00:10:07.869 +- Yeah +Sorry to hear that + +00:10:10.789 --> 00:10:12.123 +How'd you guys make out? + +00:10:12.165 --> 00:10:15.335 +Oh, we're fine +It's the listings I'm worried about + +00:10:15.418 --> 00:10:18.255 +At the very least, I'll bet every one +of our "For Sale" signs fell over + +00:10:18.338 --> 00:10:20.966 +We had damage +at the school, wouldn't you know? + +00:10:21.049 --> 00:10:24.052 +That's what we get for not fixing +that roof when we should've, + +00:10:24.135 --> 00:10:27.639 +but with funds being cut every year + +00:10:27.722 --> 00:10:29.182 +You'd think educating children + +00:10:29.266 --> 00:10:31.475 +would be more +of a priority in this country, + +00:10:31.517 --> 00:10:33.644 +but youd be wrong + +00:10:33.686 --> 00:10:36.814 +Government's got better things +to spend our money on, + +00:10:36.897 --> 00:10:40.568 +like corporate handouts +and building bombs + +00:10:54.164 --> 00:10:55.708 +Daddy, is there a fire? +Is Mommy all right? + +00:10:55.791 --> 00:10:58.586 +I'm sure she's fine +Dont worry, okay? + +00:10:59.669 --> 00:11:01.170 +Mind what youre doing, Sally + +00:11:02.088 --> 00:11:03.756 +Oh, come on, +we got 10 days' leave + +00:11:03.840 --> 00:11:04.841 +Check our papers + +00:11:04.924 --> 00:11:06.926 +Look, I told you, +all leaves are cancelled + +00:11:07.010 --> 00:11:07.969 +I don't know why + +00:11:08.052 --> 00:11:10.054 +I gotta go check the pharmacy out + +00:11:10.138 --> 00:11:12.599 +Three men meet me +back at the Jeep in five minutes + +00:11:12.682 --> 00:11:13.683 +That's an order + +00:11:16.186 --> 00:11:19.689 +Shit, man! Another half an hour, +and we'd have been gone + +00:11:52.888 --> 00:11:54.472 +Oh, my God! + +00:12:02.772 --> 00:12:04.148 +Something in the mist! + +00:12:04.232 --> 00:12:06.067 +Something in the mist + +00:12:06.150 --> 00:12:07.652 +took John Lee! + +00:12:07.735 --> 00:12:09.070 +Dan, catch your breath + +00:12:09.111 --> 00:12:10.988 +Something in the mist took John Lee + +00:12:11.072 --> 00:12:12.823 +I could hear him screaming + +00:12:12.907 --> 00:12:15.826 +Shut the doors! Shut the doors! +My God! + +00:12:15.910 --> 00:12:17.578 +Daddy, I'm scared +Can we go home? + +00:12:22.082 --> 00:12:23.041 +Don't go out there + +00:12:23.124 --> 00:12:25.377 +There's something in the mist +It took John Lee + +00:12:25.460 --> 00:12:27.921 +Screw that! +I'm gettin' in my car + +00:12:28.004 --> 00:12:29.506 +Mister, no! + +00:13:01.787 --> 00:13:03.289 +Please hold me + +00:13:03.330 --> 00:13:05.332 +It's okay, it's okay + +00:13:05.416 --> 00:13:09.545 +It's a pollution cloud +The mills down in Rumford + +00:13:09.628 --> 00:13:12.715 +Some kind of chemical explosion +Has to be + +00:13:14.091 --> 00:13:15.593 +What is it? + +00:13:16.844 --> 00:13:18.303 +What's going on? + +00:13:21.514 --> 00:13:22.640 +It's death + +00:13:57.466 --> 00:13:59.885 +Stay down! + +00:14:01.053 --> 00:14:02.221 +Daddy! + +00:14:09.978 --> 00:14:11.188 +You okay? + +00:14:21.405 --> 00:14:22.907 +That was an earthquake + +00:14:23.908 --> 00:14:26.202 +I tell you, the goddamn mills blew up! + +00:14:26.285 --> 00:14:29.747 +Is every one okay? +Is any one hurt? + +00:14:29.830 --> 00:14:33.125 +Every body just stay put, okay? +Just stay inside the store + +00:14:33.209 --> 00:14:36.087 +I can't I can't stay here +I gotta get home to my kids + +00:14:36.128 --> 00:14:39.215 +No +No, don't go out there + +00:14:39.298 --> 00:14:42.092 +It's death out there +It's the end of days + +00:14:42.175 --> 00:14:44.219 +Stop it, okay? Stop it + +00:14:44.261 --> 00:14:47.097 +Please, every body, +every body just relax, okay? + +00:14:47.180 --> 00:14:49.182 +He's right Let's just stay cool + +00:14:49.266 --> 00:14:50.642 +Let's just try to figure out +what happened + +00:14:50.725 --> 00:14:55.105 +I'm sorry, I... I cant just stay here +I have to get home to my kids + +00:14:55.146 --> 00:14:57.065 +Ma'am, no, you can't go out there + +00:14:57.107 --> 00:14:58.817 +Could be a poisonous gas cloud + +00:14:58.900 --> 00:15:00.402 +Didn't you hear that man screaming? + +00:15:00.443 --> 00:15:03.113 +I agree Let's stay here +until we figure it out + +00:15:03.196 --> 00:15:04.573 +You're not listening! + +00:15:05.115 --> 00:15:06.825 +I can't stay here + +00:15:07.950 --> 00:15:11.787 +Wanda's looking after little Victor +She's only 8 + +00:15:11.871 --> 00:15:15.749 +Sometimes she forgets +she's supposed to be watching him + +00:15:19.920 --> 00:15:22.089 +I told them I'd only be gone +a few minutes + +00:15:23.299 --> 00:15:25.593 +She's only 8 + +00:15:26.635 --> 00:15:28.095 +For their sakes, + +00:15:28.137 --> 00:15:29.471 +don't + +00:15:34.643 --> 00:15:37.187 +Well, isn't anybody gonna help me? + +00:15:39.814 --> 00:15:41.649 +Shh It's okay, pal + +00:15:42.859 --> 00:15:45.361 +Won't somebody here +see a lady home? + +00:15:50.325 --> 00:15:51.534 +You? + +00:15:59.167 --> 00:16:00.210 +You? + +00:16:09.801 --> 00:16:11.970 +It's okay, buddy +- You? + +00:16:12.012 --> 00:16:15.307 +Ma'am, please, +I got my own boy to worry about + +00:16:19.645 --> 00:16:21.980 +I hope you all rot in hell + +00:16:22.022 --> 00:16:24.233 +Ma'am, please, wait until... + +00:16:59.349 --> 00:17:01.893 +Okay, +let's start cleaning up, okay? + +00:17:01.977 --> 00:17:04.646 +Get the spilled bottles, +broken glass, stuff like that + +00:17:04.729 --> 00:17:07.357 +Aisle three has medical supplies + +00:17:07.440 --> 00:17:10.277 +It's okay It's okay + +00:17:10.360 --> 00:17:12.028 +All right, easy, champ +Come on + +00:17:12.112 --> 00:17:13.113 +Come on + +00:17:13.196 --> 00:17:15.866 +Come on +All right, hey, hey, hey + +00:17:15.907 --> 00:17:17.576 +Can't keep crying like this, pal + +00:17:17.659 --> 00:17:18.994 +Come on! + +00:17:19.077 --> 00:17:21.037 +Come on, +youre gonna hurt yourself + +00:17:21.121 --> 00:17:23.456 +- Come on, are you all right? +- I want Mommy! + +00:17:23.540 --> 00:17:25.000 +All right, I know you want Mommy + +00:17:25.083 --> 00:17:27.585 +All right, just try to breathe + +00:17:27.626 --> 00:17:28.961 +Just try to breathe, okay? + +00:17:30.462 --> 00:17:32.298 +Just try to breathe, pal +That's okay + +00:17:32.381 --> 00:17:34.049 +It's all right + +00:17:36.635 --> 00:17:39.722 +I haven't seen him suck his thumb +like this since he was 2 years old + +00:17:39.805 --> 00:17:41.599 +He's in shock + +00:17:41.682 --> 00:17:43.392 +I think we all are + +00:17:43.475 --> 00:17:44.852 +You haven't met + +00:17:45.311 --> 00:17:46.770 +Amanda Dunfrey + +00:17:46.812 --> 00:17:48.981 +She's new in town +as of this semester + +00:17:49.982 --> 00:17:51.483 +Teaches third grade + +00:17:51.567 --> 00:17:54.819 +and the specialed kids, +now that Mosher's retired + +00:17:54.903 --> 00:17:56.821 +She's wonderful +The kids love her + +00:17:57.822 --> 00:17:59.991 +And David's an artist + +00:18:00.074 --> 00:18:03.036 +He does movie posters and such + +00:18:03.119 --> 00:18:04.078 +And me + +00:18:04.662 --> 00:18:09.584 +Lord, I'm babbling away +like some old biddy at a tea party! + +00:18:09.626 --> 00:18:11.127 +My nerves are jangled, I guess + +00:18:11.211 --> 00:18:12.420 +Boy settle down? + +00:18:12.504 --> 00:18:14.005 +How is he? + +00:18:14.088 --> 00:18:15.131 +Still hot + +00:18:15.215 --> 00:18:16.716 +Why don't I get him some aspirin + +00:18:16.799 --> 00:18:18.635 +- Aisle three +- Okay + +00:18:18.718 --> 00:18:20.261 +Thanks + +00:18:20.303 --> 00:18:21.803 +How's Dan? + +00:18:21.887 --> 00:18:23.722 +His nose stopped bleedin' + +00:18:23.805 --> 00:18:26.099 +He's calmer now +Somebody gave him a Valium + +00:18:27.809 --> 00:18:29.269 +Can't believe the way he ran in here + +00:18:30.312 --> 00:18:31.438 +Never seen him like that + +00:18:31.522 --> 00:18:34.816 +I need something to cover my boy up +Got any blankets? + +00:18:35.651 --> 00:18:37.778 +Furniture pads Loadin' dock + +00:18:37.819 --> 00:18:40.906 +Gonna keep checkin' on people +If you need anything, just holler + +00:18:40.989 --> 00:18:43.075 +You bet Sally, you mind? + +00:18:43.158 --> 00:18:45.452 +Oh, I'd love to. I really should +help him clean up + +00:18:45.536 --> 00:18:47.955 +- I'll take him +- Okay + +00:18:47.996 --> 00:18:48.997 +Daddy, don't go + +00:18:49.081 --> 00:18:52.250 +No, I'll be gone two seconds, Big Bill +Come on, I'm gonna get your blanket + +00:18:52.333 --> 00:18:54.210 +Mrs Reppler's here, + +00:18:54.293 --> 00:18:56.295 +and so is Mrs Turman + +00:18:57.338 --> 00:18:58.798 +I'll be close by, okay? + +00:18:58.881 --> 00:19:01.467 +- Okay +- Dont worry, I'm not far Okay? + +00:19:02.552 --> 00:19:03.553 +Let me look at you + +00:19:06.430 --> 00:19:07.431 +Hmm? + +00:19:09.225 --> 00:19:10.309 +Wanna lie down? + +00:19:10.351 --> 00:19:11.352 +Yeah + +00:19:12.436 --> 00:19:13.688 +There you go + +00:19:13.771 --> 00:19:17.440 +Soon as it blows away, +we can walk out of here safe andfree, + +00:19:17.524 --> 00:19:18.942 +but we have to be smart about it + +00:19:19.025 --> 00:19:21.653 +First thing we need to do +is keep our wits about us + +00:19:21.736 --> 00:19:23.321 +and find out whats happened + +00:19:23.363 --> 00:19:24.865 +Well, how we gonna +do that, my man? + +00:19:24.948 --> 00:19:27.534 +We've got no phone signal, +got no radio + +00:19:27.617 --> 00:19:30.162 +I'm sure they're working +on those problems as we speak + +00:19:30.245 --> 00:19:32.497 +It stands to reason +that restoring communications + +00:19:32.539 --> 00:19:33.540 +would be their top priority + +00:19:46.427 --> 00:19:48.512 +Jeez! + +00:20:07.990 --> 00:20:10.201 +Oh, shit. + +00:20:11.702 --> 00:20:13.161 +Ow! + +00:20:15.163 --> 00:20:16.164 +Shit! + +00:20:20.502 --> 00:20:21.669 +God damn it! + +00:20:21.753 --> 00:20:23.713 +Ow! Ow! + +00:20:25.340 --> 00:20:26.925 +Bitch! + +00:20:27.008 --> 00:20:28.176 +It's obvious that were... + +00:20:28.259 --> 00:20:30.220 +we're in some kind +of natural disaster here + +00:20:30.303 --> 00:20:32.931 +Ain't nothin' obvious +about this sombitch from where I sit + +00:20:33.014 --> 00:20:35.350 +There ain't nothin' +natural about it either + +00:20:35.433 --> 00:20:36.392 +That's right + +00:20:36.476 --> 00:20:39.145 +It's Judgment Day, +and it's come round at last + +00:20:39.229 --> 00:20:41.688 +There is nothing more obvious +or natural than that + +00:20:41.772 --> 00:20:43.273 +Ohh, fuck, now + +00:20:43.357 --> 00:20:45.025 +You've done that to yourself, + +00:20:45.108 --> 00:20:46.985 +by a life of sin and dissolution + +00:21:33.322 --> 00:21:34.991 +Hey, whoa! David! + +00:21:35.073 --> 00:21:37.450 +Hey, you guys hear that? + +00:21:37.492 --> 00:21:39.411 +The generator? +We're just gonna check it out + +00:21:39.494 --> 00:21:41.329 +No, no, I turned the generator off + +00:21:41.413 --> 00:21:43.415 +It... it was backing up + +00:21:45.000 --> 00:21:47.419 +- N-nobody else heard that sound? +- What sound? + +00:21:48.420 --> 00:21:52.132 +I don't know, like a weird noise, + +00:21:52.174 --> 00:21:53.967 +back there in the dark + +00:21:54.009 --> 00:21:56.511 +Like something was, like, +pressing against the door + +00:21:56.595 --> 00:22:00.140 +Did you hear it +before the lights went out, or after? + +00:22:00.182 --> 00:22:02.058 +No, only after + +00:22:02.142 --> 00:22:04.393 +After, but, look, I heard it, okay? + +00:22:04.476 --> 00:22:06.520 +- Nobody's calling you a liar +- That's what it sounds like + +00:22:06.604 --> 00:22:09.273 +No, no, no, no +Now, don't be that away, Mr Drayton on + +00:22:09.356 --> 00:22:11.400 +You had a scare, no doubt + +00:22:11.484 --> 00:22:13.152 +What say we all go check it out? + +00:22:13.194 --> 00:22:14.653 +Here + +00:22:20.326 --> 00:22:22.578 +Oooopf! + +00:22:22.661 --> 00:22:23.621 +Man. + +00:22:23.704 --> 00:22:25.831 +It's pretty rank in here + +00:22:25.873 --> 00:22:28.000 +- Myron, go check it out +- All right + +00:22:30.960 --> 00:22:32.253 +Go on, fire it up + +00:22:40.929 --> 00:22:43.264 +All right! + +00:22:43.348 --> 00:22:44.432 +Shut it off! + +00:22:45.517 --> 00:22:47.227 +Holy crow, don't that stink! + +00:22:48.144 --> 00:22:49.562 +Something's +got the exhaust vent + +00:22:49.646 --> 00:22:51.272 +plugged up from the outside + +00:22:51.356 --> 00:22:53.775 +You get it running long enough +to raise that door a little, + +00:22:53.858 --> 00:22:55.318 +I'll go out and clear +whatever's blockin' it + +00:22:55.401 --> 00:22:56.569 +No, no, you can't do that + +00:22:56.653 --> 00:22:58.654 +Why not? +It's an electric door, right? + +00:22:58.737 --> 00:23:01.698 +Well, yeah, but it may not be wise +to send him out there + +00:23:01.782 --> 00:23:03.116 +Okay, I'll do it + +00:23:03.200 --> 00:23:05.077 +No, look, it's not about +who goes out there + +00:23:05.160 --> 00:23:07.162 +What, don't you think I can do it? + +00:23:07.246 --> 00:23:09.873 +Hey! I want to go! +It was my idea + +00:23:09.915 --> 00:23:11.416 +Well, wait, just stop, okay? + +00:23:11.500 --> 00:23:13.085 +J-Jim, right? + +00:23:13.168 --> 00:23:15.671 +Myron? You guys are... + +00:23:15.754 --> 00:23:17.840 +you, well, you don't seem +to understand, + +00:23:17.923 --> 00:23:19.466 +or youre try in' real hard not to + +00:23:19.550 --> 00:23:21.218 +This is no ordinary mist, okay? + +00:23:21.260 --> 00:23:24.429 +You open that door, +and something gets in here + +00:23:24.513 --> 00:23:25.680 +Like what? + +00:23:26.973 --> 00:23:28.891 +Well, like whatever +made that noise I heard + +00:23:28.933 --> 00:23:30.434 +Are you guys being will fully dense? + +00:23:30.518 --> 00:23:32.854 +Mr Drayton on, youll pardon me, + +00:23:32.937 --> 00:23:36.566 +but I'm not convinced +that you heard anything + +00:23:36.649 --> 00:23:38.484 +I mean, we're not +hearing anything now, right? + +00:23:38.568 --> 00:23:39.527 +Anybody? + +00:23:40.903 --> 00:23:41.863 +See? + +00:23:43.239 --> 00:23:46.242 +Now, I know, I know... +youre a big shot artist + +00:23:46.325 --> 00:23:48.828 +with connections in New York +and Hollywood and all like that, + +00:23:48.911 --> 00:23:51.205 +but that don't make you better +than anybody else, not in my book + +00:23:51.289 --> 00:23:52.623 +Hey, I didn't say that + +00:23:52.707 --> 00:23:55.041 +Nor do I like being talked down to +or called stupid + +00:23:55.125 --> 00:23:58.086 +by a guy who went to college, +just 'cause he's got the jitters + +00:23:58.128 --> 00:24:00.297 +Fellas, it doesn't even matter +about the generator + +00:24:00.380 --> 00:24:01.756 +The food'll keep without it + +00:24:01.798 --> 00:24:04.551 +Kid, I'm gonna start the motor, +you raise the door, + +00:24:04.634 --> 00:24:06.261 +and you yell out +when you got enough room + +00:24:06.303 --> 00:24:07.846 +Yeah Okay, good + +00:24:07.929 --> 00:24:09.681 +Wait + +00:24:09.764 --> 00:24:10.724 +This is... + +00:24:10.807 --> 00:24:12.726 +You guys gonna let +this kid risk his life + +00:24:12.809 --> 00:24:14.519 +over a generator +that doesn't even matter? + +00:24:14.603 --> 00:24:16.021 +Would you just +shut the fuck up already? + +00:24:16.104 --> 00:24:17.063 +Norm! + +00:24:17.147 --> 00:24:19.149 +Listen, Mr Drayton on, +I tell you what + +00:24:19.232 --> 00:24:21.233 +The next time +you got somethin' to say, + +00:24:21.317 --> 00:24:22.651 +you count your teeth, + +00:24:22.735 --> 00:24:26.071 +because I'm sick to death +of your bullshit + +00:24:26.155 --> 00:24:27.615 +All right? + +00:24:27.698 --> 00:24:28.699 +Come on, Myron + +00:24:28.782 --> 00:24:30.451 +This is crazy! +Leave 'em be + +00:24:30.493 --> 00:24:32.495 +What am I, impugning +their manhood or something? + +00:24:33.037 --> 00:24:35.039 +Listen, they've lost +their sense of proportion + +00:24:35.122 --> 00:24:36.457 +What's going on here? + +00:24:36.499 --> 00:24:38.292 +Out there in the market, +they were scared and confused + +00:24:38.334 --> 00:24:40.336 +In here, there's a problem +they can solve, + +00:24:40.419 --> 00:24:42.463 +so they're goddamn gonna solve it + +00:24:42.505 --> 00:24:44.006 +Ready, kid? +- Let's rock + +00:24:44.089 --> 00:24:45.466 +Norm, come on + +00:24:45.508 --> 00:24:46.509 +Don't, man + +00:24:50.887 --> 00:24:52.055 +It's a mistake + +00:24:56.684 --> 00:24:57.811 +Pussy + +00:25:02.315 --> 00:25:03.441 +Go up! + +00:25:25.629 --> 00:25:26.755 +So + +00:25:26.839 --> 00:25:28.298 +any boogeymen? + +00:25:31.218 --> 00:25:32.719 +Pretty scary, ain't it, Norm? + +00:25:32.803 --> 00:25:34.847 +Yeah, right + +00:25:38.100 --> 00:25:39.101 +Norm + +00:25:40.269 --> 00:25:41.854 +Norm! + +00:25:41.937 --> 00:25:43.230 +What the fuck! + +00:25:43.313 --> 00:25:44.856 +Get it off! Get it off! + +00:25:44.939 --> 00:25:46.858 +Get this friggin' thing off me! + +00:25:46.899 --> 00:25:48.651 +Get it off! Help me! + +00:25:48.818 --> 00:25:50.528 +Help me! Help me! + +00:25:52.113 --> 00:25:53.531 +Jesus! + +00:26:03.749 --> 00:26:06.752 +There's more! There's more! + +00:26:07.336 --> 00:26:08.754 +Somebody help me + +00:26:10.798 --> 00:26:12.299 +Somebody help me + +00:26:12.382 --> 00:26:14.050 +What the fuck are you waitin' for? + +00:26:26.438 --> 00:26:27.814 +Hang on! + +00:26:37.532 --> 00:26:40.743 +Hold him still! +Hold him still! + +00:26:48.709 --> 00:26:50.711 +Oh, Jesus! + +00:27:24.118 --> 00:27:25.787 +Shit! Oh, shit! + +00:27:25.829 --> 00:27:27.956 +Oh, shit! + +00:27:29.707 --> 00:27:31.876 +David, it's no good! + +00:27:33.002 --> 00:27:34.504 +Start the generator + +00:28:43.737 --> 00:28:45.030 +Hey, I'm sorry + +00:28:48.074 --> 00:28:49.201 +I mean, how the... + +00:28:49.284 --> 00:28:51.328 +how the hell was I supposed +to know what you meant? + +00:28:52.746 --> 00:28:54.372 +You said you heard something + +00:28:55.707 --> 00:28:57.167 +How was I supposed to know +what you meant? + +00:28:57.250 --> 00:28:58.459 +You should've said +what you meant better + +00:28:58.542 --> 00:29:02.004 +I don't know, I thought maybe +it was a big bird or something + +00:29:02.588 --> 00:29:04.465 +You got that kid killed! + +00:29:04.548 --> 00:29:06.509 +Did you get a good look at it? Huh? + +00:29:06.592 --> 00:29:09.720 +Did you get a good look +at what you did? + +00:29:09.804 --> 00:29:11.013 +- Huh? +- David! + +00:29:11.096 --> 00:29:12.389 +Don't hit him any more! +Doesn't solve anything! + +00:29:12.473 --> 00:29:15.309 +You two assholes, +you got that kid killed! + +00:29:15.392 --> 00:29:17.353 +And I got his fuckin' blood on me! + +00:29:37.121 --> 00:29:39.249 +Okay, I'm done + +00:29:41.376 --> 00:29:42.377 +Okay + +00:29:45.463 --> 00:29:46.923 +What's next? + +00:29:47.966 --> 00:29:49.467 +Kill the generator + +00:29:49.968 --> 00:29:51.136 +That's the first thing + +00:29:55.055 --> 00:29:56.431 +I'm sorry + +00:30:01.103 --> 00:30:03.230 +Jesus Christ! Oh, God! + +00:30:03.313 --> 00:30:05.858 +I'm... I'm sorry about the kid + +00:30:07.901 --> 00:30:10.112 +Oh, God Oh, God Oh, God + +00:30:11.530 --> 00:30:12.865 +We oughtta get out of here + +00:30:17.244 --> 00:30:18.537 +Hey, we didn't twist his arm + +00:30:18.620 --> 00:30:21.914 +Yeah, he's a fuckin' kid +He's supposed to be stupid + +00:30:22.915 --> 00:30:24.834 +What's your excuse, huh? + +00:30:28.004 --> 00:30:29.338 +Get outta here + +00:30:30.423 --> 00:30:32.258 +Go back in the market +Stay by the door + +00:30:34.594 --> 00:30:36.554 +Don't say anything, to anybody + +00:30:38.097 --> 00:30:39.140 +Not yet + +00:30:40.725 --> 00:30:41.726 +Not yet + +00:30:56.781 --> 00:30:57.782 +Shit + +00:30:57.866 --> 00:31:01.077 +David? Need a little light here + +00:31:11.880 --> 00:31:13.673 +We have to tell 'em + +00:31:13.757 --> 00:31:16.592 +The people in the market, +we have to stop 'em going outside + +00:31:17.885 --> 00:31:19.220 +They won't believe us + +00:31:20.554 --> 00:31:21.514 +They have to + +00:31:21.597 --> 00:31:23.849 +I'm not sure I believe it +I was here. + +00:31:24.892 --> 00:31:27.019 +W- what we saw was impossible + +00:31:27.061 --> 00:31:29.021 +You know that, don't you? + +00:31:29.063 --> 00:31:30.064 +I mean, what... + +00:31:31.732 --> 00:31:33.067 +what do we say? + +00:31:34.068 --> 00:31:36.737 +How do we convince them? + +00:31:39.740 --> 00:31:43.743 +Ollie, what the hell were +those tentacles even attached to? + +00:31:49.582 --> 00:31:51.918 +Oh, my God! +Are... are you all right? + +00:31:52.001 --> 00:31:54.504 +Shh! Yeah, yeah, yeah, +it's not my blood I'm fine + +00:31:54.587 --> 00:31:55.880 +W- what the hell happened? + +00:31:55.964 --> 00:31:57.757 +I'll explain Give me a minute, okay? + +00:31:57.841 --> 00:31:59.843 +I need to deal with something first + +00:32:01.761 --> 00:32:03.346 +Please, I've got to... + +00:32:03.429 --> 00:32:06.141 +I can't let Billy see me like this +He's scared enough + +00:32:06.224 --> 00:32:09.060 +Just give me a minute +Keep him distracted Okay? + +00:32:09.144 --> 00:32:10.145 +Okay + +00:32:15.899 --> 00:32:18.819 +Hey, look, +I'm sorry about Norm + +00:32:18.902 --> 00:32:20.237 +Me too + +00:32:20.320 --> 00:32:22.739 +I mean, I ain't makin' excuses, +I'm just sayin' + +00:32:22.781 --> 00:32:24.074 +Look, we need to tell people + +00:32:24.158 --> 00:32:26.660 +No need to say how it went down +or anything like that, + +00:32:26.743 --> 00:32:29.496 +but, uh, we're in the deep shit here + +00:32:29.580 --> 00:32:31.039 +People need to know + +00:32:31.123 --> 00:32:32.666 +What about the out-of-towners? + +00:32:32.749 --> 00:32:35.502 +We got plenty of them in the store +Where do we even start? + +00:32:35.586 --> 00:32:37.796 +Brent Norton? +That windbag? + +00:32:37.880 --> 00:32:40.590 +He's an important attorney +in New York + +00:32:40.673 --> 00:32:42.842 +That fellow could be +on the bench one day + +00:32:42.925 --> 00:32:45.386 +Counts a lot with people of this town, +or... or any here + +00:32:45.470 --> 00:32:47.013 +Yeah, that's right +- Do it quick, David + +00:32:47.096 --> 00:32:50.016 +We've got to discuss how were gonna +stop that thing getting in here + +00:32:50.099 --> 00:32:51.851 +W- wait What do you mean +getting in? + +00:32:52.435 --> 00:32:53.936 +You shut the loading door + +00:32:54.020 --> 00:32:57.607 +Yeah, but the entire front of the store +is plate glass + +00:33:01.444 --> 00:33:03.404 +Jesus Christ + +00:33:13.997 --> 00:33:15.791 +I was wondering +where youd gotten to + +00:33:15.874 --> 00:33:17.375 +Um, listen + +00:33:17.459 --> 00:33:20.212 +that guy that came in here, +the one with the bloody nose + +00:33:25.717 --> 00:33:29.221 +they're... they're... +We saw tentacles. + +00:33:29.304 --> 00:33:30.722 +Ain't goin' very well, is it? + +00:33:31.723 --> 00:33:33.266 +Unh-unh + +00:33:34.350 --> 00:33:35.851 +- You what? +- Come here, youve got... + +00:33:37.061 --> 00:33:38.270 +Come here + +00:33:40.356 --> 00:33:41.315 +Tell him + +00:33:43.400 --> 00:33:44.401 +It's true + +00:33:51.242 --> 00:33:53.661 +Tentacles Yeah + +00:34:02.836 --> 00:34:04.295 +Um, gentlemen, um + +00:34:05.547 --> 00:34:08.133 +I'm sorry, I... +I'm just not that stupid + +00:34:08.216 --> 00:34:09.592 +I mean, what do you take me for? + +00:34:09.676 --> 00:34:11.344 +I'm shocked + +00:34:12.428 --> 00:34:13.429 +I'm shocked + +00:34:13.513 --> 00:34:15.640 +I'm shocked It's pretty tasteless + +00:34:15.723 --> 00:34:17.684 +using what's happening here +to try to make me look like an idiot + +00:34:17.767 --> 00:34:19.435 +No, no, that's not +what's going on here + +00:34:19.519 --> 00:34:21.479 +Look, come back +to the loading dock, okay? + +00:34:21.563 --> 00:34:22.522 +I'll show you + +00:34:22.605 --> 00:34:26.192 +Blood A chunk of tentacle +on... on the floor + +00:34:26.276 --> 00:34:27.277 +No + +00:34:27.360 --> 00:34:29.028 +No? What do you mean no? + +00:34:29.112 --> 00:34:31.280 +No We've got real problems +to deal with here, + +00:34:31.363 --> 00:34:34.533 +and this pathetic attempt at a joke + +00:34:34.575 --> 00:34:36.535 +has gone far enough + +00:34:36.577 --> 00:34:39.580 +Mr Norton, what reason +could we possibly have...? + +00:34:39.663 --> 00:34:41.290 +Oh, please! Please! + +00:34:41.373 --> 00:34:43.834 +This is pay back for the lawsuit +that I filed against him last year, + +00:34:43.917 --> 00:34:45.752 +and you guys are backing him up + +00:34:45.836 --> 00:34:47.504 +So winning wasn't enough, huh? + +00:34:47.588 --> 00:34:49.756 +You wanted to humiliate me +some more, + +00:34:49.840 --> 00:34:52.176 +show me a rubber snake +while these... these hicks + +00:34:52.259 --> 00:34:53.552 +stand around laughing their asses off + +00:34:53.635 --> 00:34:54.887 +- Watch who you callin' a hick! +- Myron! Myron! + +00:34:54.970 --> 00:34:56.847 +- Hey, hey, fuck...! +Mr Norton + +00:34:56.930 --> 00:34:59.515 +I swear, you have +got us all wrong + +00:34:59.599 --> 00:35:04.061 +You're not too crazy about, +um, out-of-towners, are you? + +00:35:05.146 --> 00:35:07.190 +I only spend my money, +and I pay my taxes here, + +00:35:07.273 --> 00:35:11.110 +and I have seen you +talking behind my back + +00:35:12.528 --> 00:35:13.946 +Y'all stick together + +00:35:17.283 --> 00:35:18.951 +Well, don't I feel foolish? + +00:35:19.035 --> 00:35:21.537 +I actually thought you were +being kind to me today, + +00:35:21.621 --> 00:35:23.080 +and, well, thanks +for setting me straight + +00:35:23.164 --> 00:35:25.332 +And I'm glad that tree fell +on your boathouse, you know that? + +00:35:25.415 --> 00:35:27.793 +Glad Smashed it in +pretty good, didn't it? Fantastic + +00:35:27.876 --> 00:35:29.461 +Now, all of y'all, +just stay out of my way + +00:35:29.544 --> 00:35:32.088 +I know youre scared, man +I'm scared too + +00:35:32.172 --> 00:35:34.257 +- Lives are at stake around here +- David... + +00:35:34.299 --> 00:35:36.635 +Okay, my son's life +Now, I need you. + +00:35:36.718 --> 00:35:40.263 +Brent, please, +get your head out of your ass + +00:35:40.347 --> 00:35:42.432 +All right, I'll drag you +back there if I have to + +00:35:42.474 --> 00:35:43.475 +Come here + +00:35:43.558 --> 00:35:46.561 +David, get your goddamn hands +off of me! + +00:35:46.645 --> 00:35:48.563 +I'll sue your ass again! + +00:35:48.647 --> 00:35:50.899 +Sue your ass, and this time +youll go to jail! + +00:35:50.982 --> 00:35:52.441 +This man assaulted me + +00:35:52.525 --> 00:35:55.152 +He assaulted me +You were witness to it + +00:35:55.236 --> 00:35:56.237 +This man's crazy +He's crazy + +00:35:56.320 --> 00:35:57.947 +No + +00:35:57.988 --> 00:36:00.407 +He isn't I wish he was, but he isn't + +00:36:02.618 --> 00:36:06.747 +E- every one in the store, +you want to come back here? + +00:36:07.832 --> 00:36:10.459 +There's something you need to hear +It concerns you all + +00:36:10.501 --> 00:36:11.794 +Okay + +00:36:11.877 --> 00:36:14.880 +W- w-wait I don't know +what you people think youre doing + +00:36:14.964 --> 00:36:16.423 +You're drinking? + +00:36:16.507 --> 00:36:18.008 +For Christ's sake, Ollie + +00:36:19.009 --> 00:36:22.137 +Do you want me to report you? +You want to lose your job? + +00:36:22.178 --> 00:36:24.097 +Look, I'm gonna be taking down +names, starting with you + +00:36:24.180 --> 00:36:26.141 +And I am prepared to file +a police report + +00:36:26.182 --> 00:36:28.184 +- Fine, Bud, write down your names +- I will + +00:36:28.268 --> 00:36:31.104 +But in the meantime, +shut the fuck up and listen + +00:36:32.897 --> 00:36:34.149 +This is Mr David Drayton on + +00:36:34.190 --> 00:36:37.527 +You need to hear what he's got to say +if youre thinking about leaving + +00:36:37.610 --> 00:36:39.279 +go hang out +with the ladies, all right? + +00:36:39.362 --> 00:36:40.655 +Listen, don't be scared + +00:36:42.866 --> 00:36:43.825 +It's okay + +00:36:46.035 --> 00:36:47.036 +Okay + +00:36:48.203 --> 00:36:49.538 +This is how it is + +00:36:49.621 --> 00:36:52.040 +Now, I don't know +what this mist is + +00:36:53.041 --> 00:36:55.294 +but there are things in it, and they're +dangerous, like Dan said + +00:36:55.377 --> 00:36:56.336 +That's right + +00:36:56.920 --> 00:36:58.755 +That's exactly right + +00:36:58.839 --> 00:37:00.674 +What kind of things? + +00:37:00.757 --> 00:37:02.759 +I never saw it +It happened too fast + +00:37:02.843 --> 00:37:04.636 +I got knocked down + +00:37:04.720 --> 00:37:06.847 +Five of us went back +in the loading dock + +00:37:06.930 --> 00:37:10.517 +It was Jim, Myron, Ollie + +00:37:10.601 --> 00:37:12.269 +me + +00:37:12.352 --> 00:37:13.812 +Norm, the bagboy + +00:37:13.896 --> 00:37:15.396 +- We opened the door +- Where's Norm? + +00:37:15.480 --> 00:37:19.192 +So Norm could go out +and clear the vent for the generator + +00:37:20.526 --> 00:37:22.153 +Something come out of the mist +and took him + +00:37:22.236 --> 00:37:23.196 +Took him? + +00:37:23.279 --> 00:37:24.864 +What do you mean? + +00:37:26.449 --> 00:37:27.617 +Just killed him + +00:37:27.700 --> 00:37:29.535 +I mean dragged him off + +00:37:29.619 --> 00:37:34.207 +Now, guys, I don't know +what these things are + +00:37:35.249 --> 00:37:36.751 +All we saw were tentacles + +00:37:40.713 --> 00:37:41.672 +Tentacles? + +00:37:44.883 --> 00:37:46.468 +Tentacles, he say + +00:37:47.052 --> 00:37:49.137 +Tentacles from Planet X + +00:37:49.221 --> 00:37:50.555 +It's a lie, you know + +00:37:50.597 --> 00:37:53.725 +I mean, all these people do +is just lie each other up + +00:37:53.809 --> 00:37:55.060 +It's a pile of shit + +00:37:55.101 --> 00:37:56.603 +Of course it's a lie +Of course it's a lie + +00:37:56.686 --> 00:37:57.687 +It's lunacy + +00:37:58.688 --> 00:38:01.233 +From the look of it, the tentacles +are coming out of the beer cans + +00:38:01.316 --> 00:38:03.026 +All right, uh, Bud, +don't take our word for it + +00:38:03.110 --> 00:38:04.069 +Go look + +00:38:10.825 --> 00:38:11.826 +Over there + +00:38:17.498 --> 00:38:18.999 +What the hell is that? + +00:38:51.489 --> 00:38:54.784 +It appears we may have a problem +of some magnitude here + +00:39:11.008 --> 00:39:12.468 +Yeah, just keep 'em in line +Thanks + +00:39:23.520 --> 00:39:25.147 +Let me + +00:39:27.357 --> 00:39:30.694 +help these people + +00:39:30.778 --> 00:39:32.613 +Let me... + +00:39:32.696 --> 00:39:34.655 +let me preach your word + +00:39:36.699 --> 00:39:39.118 +Let me shine your light, + +00:39:39.202 --> 00:39:41.662 +'cause they're not all bad + +00:39:42.705 --> 00:39:44.999 +They can't all be bad + +00:39:48.044 --> 00:39:51.964 +Some can be saved, can't they? + +00:39:52.048 --> 00:39:53.800 +Yes + +00:39:53.883 --> 00:39:55.343 +Some can be brought + +00:39:56.385 --> 00:39:59.639 +to heaven's holy gates +through your grace + +00:39:59.722 --> 00:40:00.932 +I have to believe that, + +00:40:01.015 --> 00:40:05.393 +though I know most will swim +in the lake of fire forever + +00:40:09.064 --> 00:40:10.690 +If I can save a few + +00:40:12.067 --> 00:40:14.027 +even one + +00:40:15.070 --> 00:40:17.531 +then my life will have counted +for something + +00:40:18.573 --> 00:40:21.368 +I will have pulled my weight + +00:40:21.451 --> 00:40:24.830 +I will have earned my place +at your side + +00:40:24.913 --> 00:40:29.208 +I will have served a purpose +here on this earth + +00:40:29.291 --> 00:40:30.793 +Hello? + +00:40:46.934 --> 00:40:48.185 +What? + +00:40:48.269 --> 00:40:50.479 +I just need to use the bathroom + +00:40:50.563 --> 00:40:51.522 +Oh + +00:40:52.773 --> 00:40:55.151 +Okay Well, then, have at it + +00:40:59.446 --> 00:41:00.697 +Ma'am + +00:41:01.781 --> 00:41:05.618 +I... I just want you to know +that it's okay... + +00:41:05.702 --> 00:41:07.370 +being scared, I mean... + +00:41:07.454 --> 00:41:09.998 +and, well, if you need a friend... + +00:41:10.081 --> 00:41:12.500 +you know, someone to talk to + +00:41:12.584 --> 00:41:14.544 +I have a friend... + +00:41:14.627 --> 00:41:18.548 +God up above +I talk to him every day + +00:41:18.631 --> 00:41:20.592 +Don't you condescend to me + +00:41:20.675 --> 00:41:21.801 +I'm sorry? + +00:41:21.885 --> 00:41:25.429 +Not ever +You don't mock me + +00:41:25.471 --> 00:41:27.097 +That's not what I was doing + +00:41:28.140 --> 00:41:30.100 +Well, I'll tell you what... + +00:41:30.184 --> 00:41:32.019 +the day I need a friend like you, + +00:41:32.102 --> 00:41:35.147 +I'll just have my self a little squat +and shit one out + +00:41:40.986 --> 00:41:42.654 +Maybe you do believe this + +00:41:42.738 --> 00:41:45.824 +Maybe they're not lies, +they're delusions Whatever + +00:41:45.908 --> 00:41:49.119 +Uh, the fact remains, +the evidence here is flimsy + +00:41:49.203 --> 00:41:51.246 +- It's bordering on ludicrous +- Hey, this isn't a courtroom + +00:41:52.246 --> 00:41:53.247 +You're not arguing a case, + +00:41:53.331 --> 00:41:54.874 +and youre doing nothing but damage, +talking the way you are + +00:41:54.957 --> 00:41:57.919 +And you can throw as much cow's blood +around the loading dock as you want to + +00:41:58.002 --> 00:41:59.462 +You still haven't fooled any one + +00:41:59.504 --> 00:42:00.588 +Leave it alone, David + +00:42:00.671 --> 00:42:02.340 +You can't convince +some people there's a fire + +00:42:02.423 --> 00:42:04.425 +even when their hair is burning + +00:42:04.509 --> 00:42:05.968 +Denial is a powerful thing + +00:42:06.052 --> 00:42:07.053 +Well, keep talking + +00:42:07.136 --> 00:42:10.473 +I'll have no part of it, +nor would any thinking person + +00:42:10.515 --> 00:42:13.226 +Keep thinking, Mr Lawyer + +00:42:13.309 --> 00:42:16.229 +There's no defence +against the will of God + +00:42:16.312 --> 00:42:18.481 +There's no court of appeals in hell + +00:42:18.564 --> 00:42:20.982 +There's no defence here, either + +00:42:21.024 --> 00:42:23.276 +Not even with all the fertilizer +in the world, + +00:42:23.360 --> 00:42:25.821 +not even if you stack it +as high as you can + +00:42:25.904 --> 00:42:28.448 +It's still just bags of shit, isn't it? + +00:42:28.532 --> 00:42:30.492 +Those of you who want to discuss +this thing rationally + +00:42:30.575 --> 00:42:34.621 +to find a means of rescue +are welcome to join me + +00:42:34.704 --> 00:42:37.332 +Those who want to stack dog food, + +00:42:37.415 --> 00:42:38.959 +knock yourselves out + +00:42:42.712 --> 00:42:45.048 +We got those windows taped up +as best we could + +00:42:45.132 --> 00:42:46.299 +It should help + +00:42:46.383 --> 00:42:47.675 +Yeah, think so? + +00:42:49.718 --> 00:42:51.554 +Duct tape and dog food bags + +00:42:53.764 --> 00:42:55.099 +That bad? + +00:42:55.182 --> 00:42:56.142 +It's not good + +00:42:56.225 --> 00:42:59.395 +There's none so blind +as those who will not see + +00:43:00.688 --> 00:43:02.273 +Open your eyes + +00:43:02.356 --> 00:43:04.608 +Let the scales fall away + +00:43:04.692 --> 00:43:06.652 +This has all been written + +00:43:08.195 --> 00:43:11.532 +Revelations, chapter 15: + +00:43:11.574 --> 00:43:13.909 +"And the temple was filled with smoke + +00:43:13.993 --> 00:43:16.161 +"from the glory of God + +00:43:16.244 --> 00:43:17.620 +"and from his power, + +00:43:17.704 --> 00:43:19.164 +"and no one could enter the temple + +00:43:19.247 --> 00:43:23.251 +until the seven plagues +of the seven angels were completed" + +00:43:23.334 --> 00:43:25.628 +Well, what are you saying? + +00:43:25.712 --> 00:43:27.046 +What are you proposing? + +00:43:27.088 --> 00:43:28.715 +That we all prepare + +00:43:30.216 --> 00:43:31.593 +to meet our Maker + +00:43:31.676 --> 00:43:33.845 +Oh, prepare to meet shit! + +00:43:34.888 --> 00:43:37.390 +Lady, your tongue +must be hung in the middle + +00:43:37.474 --> 00:43:39.392 +so that it can waggle at both ends + +00:43:39.434 --> 00:43:41.227 +The end time has come, + +00:43:41.269 --> 00:43:43.061 +not in flames, but in mist + +00:43:43.103 --> 00:43:44.104 +Come here! + +00:43:44.188 --> 00:43:45.314 +Easy! Back off! + +00:43:45.397 --> 00:43:48.400 +How about if your ass prepares +to meet my size-10 work boot + +00:43:48.484 --> 00:43:49.485 +How about that? + +00:43:49.568 --> 00:43:51.028 +Hey, there's no call for that + +00:43:51.111 --> 00:43:53.697 +Myron, please, +calm your friend down + +00:43:53.781 --> 00:43:56.533 +I'm trying +to save your soul, you stupid man + +00:43:56.617 --> 00:43:58.786 +- Doubters will doubt till the end +- It's okay + +00:43:58.869 --> 00:43:59.912 +No, I'm sorry, I'm sorry + +00:43:59.995 --> 00:44:02.581 +A monstrosity did pull +that poor boy away + +00:44:03.165 --> 00:44:06.543 +Things in the mist... +do you doubt? + +00:44:06.627 --> 00:44:07.586 +Do you? + +00:44:09.171 --> 00:44:11.089 +Then go out + +00:44:11.172 --> 00:44:13.549 +Go out and say, +"How do you do" + +00:44:13.633 --> 00:44:14.592 +Shut up, lady + +00:44:16.344 --> 00:44:17.553 +For God's sakes + +00:44:17.637 --> 00:44:19.764 +Look, youll have to stop now +You're scaring the children + +00:44:19.847 --> 00:44:21.265 +They should be scared + +00:44:21.307 --> 00:44:24.018 +Oh, yes, they should + +00:44:25.019 --> 00:44:27.563 +Their beautiful, pure little minds + +00:44:27.647 --> 00:44:30.108 +have been corrupted with lies + +00:44:30.191 --> 00:44:31.192 +Lies + +00:44:31.275 --> 00:44:33.361 +All this talk of a modern God, + +00:44:33.444 --> 00:44:36.114 +or no God + +00:44:36.197 --> 00:44:37.864 +There is one God + +00:44:37.948 --> 00:44:39.616 +The God of the Israelites + +00:44:39.658 --> 00:44:42.494 +And he is a stern and vengeful God, + +00:44:42.577 --> 00:44:45.122 +and we have been mocking him +far too long, + +00:44:45.205 --> 00:44:48.875 +and now he demands +retribution in blood + +00:44:48.959 --> 00:44:51.628 +It is time to declare yourselves + +00:44:51.670 --> 00:44:53.338 +Take sides... + +00:44:53.422 --> 00:44:55.257 +the saved and the damned + +00:44:55.340 --> 00:44:58.802 +Read the Good Book +It calls for expiation + +00:44:58.885 --> 00:45:00.720 +- Blood! +- What? + +00:45:00.804 --> 00:45:01.763 +Blood + +00:45:03.014 --> 00:45:04.641 +Little Normie was first, + +00:45:04.724 --> 00:45:07.810 +and now God calls the rest of us + +00:45:07.852 --> 00:45:09.353 +The bill is due + +00:45:09.437 --> 00:45:10.938 +It must be paid + +00:45:11.021 --> 00:45:13.983 +As Abraham prepared +to sacrifice his only son + +00:45:14.066 --> 00:45:15.568 +to prove his love for God, so... + +00:45:15.651 --> 00:45:16.819 +Enough + +00:45:23.033 --> 00:45:25.453 +- Ohh +- Another down payment + +00:45:25.536 --> 00:45:26.996 +A few more pennies in the jar + +00:45:27.037 --> 00:45:28.080 +Now, that's nice, see + +00:45:28.080 --> 00:45:30.082 +I can't smack her, +but it's okay for you + +00:45:30.166 --> 00:45:31.500 +I- I'm sorry every body, + +00:45:31.542 --> 00:45:34.544 +but this lady's perspective is +a little too Old Testament for my taste + +00:45:34.627 --> 00:45:36.129 +They'll come for you + +00:45:37.172 --> 00:45:39.632 +Maybe tonight, +when darkness comes + +00:45:41.217 --> 00:45:44.095 +They'll come tonight, +and they'll take someone else + +00:45:44.179 --> 00:45:46.139 +See if they don't + +00:45:46.222 --> 00:45:47.974 +And when they do, + +00:45:48.057 --> 00:45:50.685 +you will cry to God, + +00:45:50.727 --> 00:45:54.397 +and you will beg Mother Carmody +to show you the way + +00:45:54.481 --> 00:45:55.815 +That's fine + +00:45:56.900 --> 00:45:59.152 +But until then, +if you don't shut up, + +00:45:59.235 --> 00:46:01.195 +I'll wrap this tape around your mouth + +00:46:01.278 --> 00:46:03.614 +You just try it, Ollie Weeks + +00:46:03.697 --> 00:46:05.157 +And you, bitch + +00:46:06.658 --> 00:46:08.160 +you hit me again + +00:46:09.161 --> 00:46:10.329 +if you dare + +00:46:11.330 --> 00:46:13.999 +You'll be on your knees to me +before this is through + +00:46:20.756 --> 00:46:22.549 +Those of you who aren't local +should know + +00:46:22.591 --> 00:46:25.427 +that Mrs Carmody +is known in town for being + +00:46:26.512 --> 00:46:27.513 +unstable + +00:46:27.596 --> 00:46:30.973 +No shit +What was your first clue? + +00:46:34.060 --> 00:46:35.520 +Shh + +00:46:36.604 --> 00:46:38.397 +Hi + +00:46:38.481 --> 00:46:39.649 +What's up, little dude? + +00:46:39.732 --> 00:46:41.526 +How come your friends +don't come get us? + +00:46:41.609 --> 00:46:43.069 +They got tanks and stuff, right? + +00:46:44.529 --> 00:46:45.905 +Why can't you just call 'em? + +00:46:45.988 --> 00:46:47.156 +Phones dont work + +00:46:47.240 --> 00:46:48.991 +But don't you got, like, a radio? + +00:46:49.075 --> 00:46:50.535 +Hey, champ, what's going on? + +00:46:50.618 --> 00:46:52.745 +I want their friends +to come rescue us + +00:46:52.829 --> 00:46:54.831 +They would if they could, pal +They're stuck here just like us + +00:46:54.914 --> 00:46:55.873 +But... + +00:46:55.957 --> 00:46:57.833 +Shh Now, guys, we could use +a hand over there + +00:46:57.916 --> 00:46:58.875 +Yeah, sure thing + +00:46:58.959 --> 00:47:00.419 +Troop, off your asses + +00:47:00.460 --> 00:47:03.547 +You all right? +- I don't like that scary lady + +00:47:03.630 --> 00:47:05.924 +Oh, man, I don't either + +00:47:06.007 --> 00:47:07.467 +But you know what? + +00:47:08.468 --> 00:47:10.262 +Maybe she's scared too + +00:47:11.304 --> 00:47:12.264 +You think? + +00:47:13.306 --> 00:47:14.808 +You think Mommy's okay? + +00:47:15.809 --> 00:47:18.145 +Billy + +00:47:21.022 --> 00:47:23.191 +I'm sorry about the times +I was bad to her + +00:47:23.275 --> 00:47:24.233 +Aw, hey + +00:47:25.317 --> 00:47:28.446 +Mommy loves you very much + +00:47:28.487 --> 00:47:29.989 +And I'll bet she's fine + +00:47:31.824 --> 00:47:33.826 +And I promise you, + +00:47:33.909 --> 00:47:37.079 +I'm gonna do everything I can +to get us back to her + +00:47:38.664 --> 00:47:40.040 +- Okay? +- 'Kay + +00:47:41.125 --> 00:47:42.543 +- Yeah? +- 'Kay + +00:47:43.544 --> 00:47:46.380 +So, we can use the charcoal fluid +and the mops + +00:47:46.464 --> 00:47:47.798 +to make torches + +00:47:47.840 --> 00:47:49.717 +And we've got knives and stuff, +God knows + +00:47:49.800 --> 00:47:52.177 +This maybe +a silly question, Bud, but + +00:47:53.178 --> 00:47:55.013 +do you happen to have +a gun in the store? + +00:47:56.014 --> 00:47:57.849 +Here? No Please + +00:47:57.932 --> 00:47:59.642 +This... this isn't Los Angeles + +00:47:59.726 --> 00:48:01.394 +I've got a shotgun in my truck + +00:48:02.729 --> 00:48:04.230 +I could try for it if you want + +00:48:04.314 --> 00:48:06.566 +Oh, God, I don't think that'd be +a good idea, Mr Cornell + +00:48:06.649 --> 00:48:07.609 +Hold on + +00:48:10.153 --> 00:48:11.613 +This gun, um + +00:48:11.696 --> 00:48:13.573 +my husband's idea + +00:48:13.656 --> 00:48:15.617 +He's away on business a lot + +00:48:15.700 --> 00:48:16.868 +It's not even loaded + +00:48:16.951 --> 00:48:18.578 +Ain't much use unloaded, ma'am + +00:48:18.661 --> 00:48:19.620 +Um + +00:48:23.332 --> 00:48:24.750 +You know how to use that? + +00:48:24.833 --> 00:48:26.418 +Well, I shot it once on a pistol range + +00:48:26.502 --> 00:48:27.961 +Hit the target a few times + +00:48:29.004 --> 00:48:31.590 +So, we got a gun + +00:48:31.673 --> 00:48:33.592 +Anybody know how to shoot it? + +00:48:33.675 --> 00:48:35.010 +Well, I mean? + +00:48:35.094 --> 00:48:36.095 +I do + +00:48:38.889 --> 00:48:39.848 +You? + +00:48:39.932 --> 00:48:42.768 +Ollie Please + +00:48:48.106 --> 00:48:50.024 +Some target shooting + +00:48:50.066 --> 00:48:52.276 +State champion in '94 + +00:48:52.360 --> 00:48:54.195 +You're crazy if you go out there! +Let us pass! + +00:48:54.278 --> 00:48:56.197 +Let us pass, please! + +00:48:56.280 --> 00:48:57.281 +Let's just talk this thing through + +00:48:57.365 --> 00:48:59.534 +We have, and we've +made our decision We're leaving + +00:48:59.575 --> 00:49:02.620 +Hey, Mr Mackey's gonna barbecue +some chicken on the gas grill + +00:49:02.703 --> 00:49:03.913 +Why dont we just +sit down and just... + +00:49:03.913 --> 00:49:05.039 +What, and let you keep on talking? + +00:49:05.081 --> 00:49:07.208 +No, I've been in far too many +courtrooms to fall for that + +00:49:07.250 --> 00:49:09.377 +You've already psyched out +half a dozen of my people already + +00:49:09.460 --> 00:49:10.461 +Your people? + +00:49:10.545 --> 00:49:12.380 +What kind of talk is that? +They're people, that's all + +00:49:12.422 --> 00:49:13.881 +Now... now listen, every one + +00:49:13.923 --> 00:49:16.925 +We are experiencing +some kind of disaster + +00:49:17.008 --> 00:49:19.010 +I don't know whether +it's manmade or natural, + +00:49:19.094 --> 00:49:22.973 +but I do know that +it's definitely not supernatural + +00:49:23.056 --> 00:49:25.350 +or biblical, +and, no offense, Mrs Carmody, + +00:49:25.434 --> 00:49:27.060 +but the only way +we're gonna help ourselves + +00:49:27.102 --> 00:49:28.770 +is to seek rescue + +00:49:30.647 --> 00:49:31.648 +We're going out + +00:49:34.317 --> 00:49:36.361 +- Brent, look +- I'm not discussing this any further + +00:49:36.445 --> 00:49:38.613 +I know I just want to ask a favor + +00:49:40.323 --> 00:49:41.825 +Tie this around your waist + +00:49:41.908 --> 00:49:43.075 +What for? + +00:49:43.117 --> 00:49:45.244 +It'll let us know you got +at least 300 feet + +00:49:47.455 --> 00:49:48.456 +I'll do it + +00:49:50.040 --> 00:49:51.500 +Are you throwing in with them? + +00:49:51.584 --> 00:49:53.669 +Me? No thanks + +00:49:53.753 --> 00:49:56.213 +I think your man there +is a little too tightly wound + +00:49:56.297 --> 00:49:58.507 +Gonna get somebody killed + +00:49:58.591 --> 00:50:01.385 +But I'm thinkin' we could use +that shotgun of yours + +00:50:01.969 --> 00:50:04.096 +I saw where you parked +when I pulled in + +00:50:04.180 --> 00:50:06.348 +Red pickup, right? +Far entrance? + +00:50:06.432 --> 00:50:08.392 +Son, you got brass balls + +00:50:09.351 --> 00:50:11.186 +The shells are +in the glove compartment + +00:50:11.269 --> 00:50:12.228 +Drive it back + +00:50:14.689 --> 00:50:15.940 +All right + +00:50:16.024 --> 00:50:17.692 +Just see they're paying out this line + +00:50:17.776 --> 00:50:19.944 +Line's up, I'll cut her loose, + +00:50:20.028 --> 00:50:21.529 +just so you understand + +00:50:21.613 --> 00:50:22.572 +Yeah + +00:50:30.205 --> 00:50:32.540 +You sure there's no way +I can talk you out of this? + +00:50:32.624 --> 00:50:33.583 +David + +00:50:34.626 --> 00:50:37.878 +there's nothing out there +Nothing in the mist + +00:50:37.961 --> 00:50:39.922 +What if youre wrong? + +00:50:41.006 --> 00:50:42.508 +Then, I guess + +00:50:44.551 --> 00:50:47.554 +the joke would be on me after all + +00:50:52.851 --> 00:50:54.103 +We're gonna send back help + +00:50:55.229 --> 00:50:57.564 +You'll die out there +All of you + +00:51:10.326 --> 00:51:13.496 +Hey, crazy lady, +I believe in God too + +00:51:13.579 --> 00:51:16.165 +I just don't think +he's the bloodthirsty asshole + +00:51:16.249 --> 00:51:17.583 +you make him out to be + +00:51:17.667 --> 00:51:20.378 +Well, you take that up with the devil +when you run into him + +00:51:20.461 --> 00:51:21.963 +You just chat it over at your leisure + +00:51:30.721 --> 00:51:32.639 +Well, let's strike out +toward the center of town + +00:51:51.783 --> 00:51:52.951 +Keep it loose + +00:52:08.924 --> 00:52:10.384 +Nice and easy + +00:52:10.468 --> 00:52:11.719 +Keep going + +00:52:29.402 --> 00:52:30.361 +Look + +00:52:33.573 --> 00:52:34.824 +It's going + +00:52:36.910 --> 00:52:38.078 +They're doing good + +00:52:56.136 --> 00:52:57.346 +Put it down! + +00:52:58.430 --> 00:53:00.682 +Pull! + +00:53:02.559 --> 00:53:04.978 +Oh, my God! +I'm slippin'! + +00:53:06.480 --> 00:53:08.816 +Pull! Back up! Back up! +Back up! + +00:53:22.246 --> 00:53:23.246 +Get it off! + +00:53:32.672 --> 00:53:33.631 +Oh, my God + +00:53:40.346 --> 00:53:41.806 +Aw, sh... +Blood! + +00:53:41.889 --> 00:53:43.641 +Awww, sh...! + +00:53:43.683 --> 00:53:45.351 +Oh, my God! + +00:53:46.519 --> 00:53:48.813 +Oh, my God! + +00:54:03.368 --> 00:54:04.661 +Cut the rope! + +00:54:07.414 --> 00:54:08.331 +Shut the door! + +00:54:14.171 --> 00:54:16.131 +Now do you see? + +00:54:18.175 --> 00:54:19.633 +Now do you believe? + +00:54:29.560 --> 00:54:31.395 +About a half-hour of day light left + +00:54:32.730 --> 00:54:34.523 +guys, how's it going +with these work lights? + +00:54:34.565 --> 00:54:35.900 +We're gettin' 'em rigged up all right + +00:54:36.901 --> 00:54:38.235 +Yeah, check it out + +00:54:38.319 --> 00:54:40.821 +All right, all right +Save it, save it + +00:54:40.905 --> 00:54:42.698 +These batteries ain't topped up + +00:54:42.782 --> 00:54:44.909 +You turn the lights on, +it's gonna drain 'em quick + +00:54:44.992 --> 00:54:46.077 +How quick? + +00:54:46.160 --> 00:54:48.161 +- Five minutes, maybe ten +- Yeah, if that + +00:54:48.244 --> 00:54:50.246 +Okay, emergencies only + +00:54:51.247 --> 00:54:52.749 +If something gets in the store + +00:55:00.465 --> 00:55:03.051 +Holy Jesus, +you scared the shit outta me + +00:55:03.134 --> 00:55:04.636 +Oh, Sally, I'm sorry, really + +00:55:06.221 --> 00:55:09.057 +I thought I'd come in and say hi +and see how you were holding up + +00:55:09.099 --> 00:55:10.600 +- Hi +- Hi + +00:55:11.726 --> 00:55:13.061 +Barely How about you? + +00:55:13.103 --> 00:55:14.686 +I'm worried about my folks, I guess + +00:55:14.770 --> 00:55:17.439 +You know, they live +up on Shorm Road + +00:55:17.523 --> 00:55:19.525 +That's less than +five miles from here + +00:55:19.608 --> 00:55:21.276 +How 'bout yours? + +00:55:21.360 --> 00:55:22.861 +Well, they're out of town right now + +00:55:23.904 --> 00:55:26.490 +They're at my aunt's in Boston, so + +00:55:26.573 --> 00:55:29.326 +That's lucky +That means they're okay + +00:55:29.410 --> 00:55:30.369 +I hope so + +00:55:32.913 --> 00:55:33.872 +So + +00:55:34.915 --> 00:55:36.500 +how soon you shipping out? + +00:55:36.583 --> 00:55:38.252 +Uh, couple weeks + +00:55:39.920 --> 00:55:41.380 +Scared about going over there? + +00:55:42.797 --> 00:55:43.798 +Yeah + +00:55:49.095 --> 00:55:50.638 +- Hey, Wayne? +- Hmm? + +00:55:51.764 --> 00:55:53.224 +How come you never asked me out? + +00:55:54.308 --> 00:55:56.811 +We flirted all through high school +I know you like me + +00:56:01.023 --> 00:56:02.567 +So how come? + +00:56:05.027 --> 00:56:06.863 +I'm stupid, I guess + +00:56:23.378 --> 00:56:25.380 +Oh, shit! I'm sorry + +00:56:25.464 --> 00:56:26.673 +Don't be I just... + +00:56:27.674 --> 00:56:29.968 +I just didn't really want it +to happen like this, you know? + +00:56:30.051 --> 00:56:32.262 +Some shitty locker room at work + +00:56:33.263 --> 00:56:34.931 +Can we just stay in here +a while, then? + +00:56:36.391 --> 00:56:37.975 +I mean, just... just you and me + +00:56:50.071 --> 00:56:52.615 +The parking lot lamps +turned on + +00:56:52.656 --> 00:56:53.699 +They're on a timer + +00:56:53.783 --> 00:56:55.785 +Must be a different one +that's live + +00:56:55.868 --> 00:56:58.537 +Maybe we could +tie into them somehow, + +00:56:58.621 --> 00:57:00.498 +get some electricity in here + +00:57:01.540 --> 00:57:03.209 +That'd mean walking out the door + +00:57:14.219 --> 00:57:15.929 +Gaaaahhhh! God! + +00:57:16.805 --> 00:57:18.264 +Oh, my God! +Oh, my God! + +00:57:18.348 --> 00:57:20.308 +David! David! + +00:57:22.685 --> 00:57:23.686 +You sure? + +00:57:23.770 --> 00:57:24.771 +Look! + +00:57:47.876 --> 00:57:49.336 +My God + +00:58:04.892 --> 00:58:06.352 +Are those bugs? + +00:58:08.521 --> 00:58:09.772 +Not like any I've ever seen + +00:58:10.773 --> 00:58:12.942 +"They came out of the smoke, + +00:58:13.025 --> 00:58:14.944 +"locusts upon the earth, + +00:58:15.027 --> 00:58:17.530 +"and unto them was given power + +00:58:17.613 --> 00:58:21.784 +even as the scorpions +of the earth have power" + +00:58:21.868 --> 00:58:24.370 +Wow + +00:58:24.454 --> 00:58:26.914 +Look at those stingers + +00:58:30.375 --> 00:58:32.377 +Dear God + +00:59:11.540 --> 00:59:13.042 +Holy shit! + +00:59:28.431 --> 00:59:30.433 +Myron, get the ones in the back! + +00:59:31.935 --> 00:59:33.645 +God, I think they're +attracted to the light + +00:59:33.728 --> 00:59:36.064 +Look out, look out, look out! + +00:59:36.147 --> 00:59:37.232 +The light! Douse the light! + +00:59:38.900 --> 00:59:40.235 +Look out! Look out! + +00:59:45.031 --> 00:59:46.324 +Move! Move! + +00:59:48.284 --> 00:59:50.786 +Light, light, +light, light, light! + +00:59:51.954 --> 00:59:53.789 +"And there came a voice +from the temple + +00:59:53.831 --> 00:59:55.666 +"saying to the seven angels, + +00:59:55.749 --> 00:59:58.085 +"'Go your ways + +00:59:58.168 --> 01:00:02.339 +and pour out the vials +of the wrath of God upon the earth"' + +01:00:11.223 --> 01:00:13.684 +Ollie, +the glass is gonna give! + +01:00:21.482 --> 01:00:22.483 +Shit! + +01:00:22.567 --> 01:00:24.026 +Oh, my God, +they turned on all the lights! + +01:00:24.110 --> 01:00:26.279 +Jim! Myron! +Fire! + +01:00:26.362 --> 01:00:27.697 +Fire! Lighter! +Douse the lights! + +01:00:27.739 --> 01:00:30.032 +Come on, come on! + +01:00:41.544 --> 01:00:43.004 +Sally, look out! + +01:00:45.423 --> 01:00:46.423 +No! + +01:00:54.264 --> 01:00:56.808 +Let me see, let me see +Let me see, sweetheart, let me see + +01:00:56.892 --> 01:00:58.810 +No, youre gonna be okay +You're gonna be okay + +01:00:58.894 --> 01:00:59.853 +Let me see Let me see + +01:00:59.936 --> 01:01:01.646 +You're fine You're gonna be okay +You're gonna be okay + +01:01:01.730 --> 01:01:03.065 +Give me the lighter! +Put it on fire! + +01:01:03.106 --> 01:01:04.107 +Come on! + +01:01:11.156 --> 01:01:13.283 +Goddamn childproofing sons of bitches! + +01:01:15.367 --> 01:01:17.620 +Oh, shoot it! Shoot it! + +01:01:19.246 --> 01:01:20.915 +Shoot it! Shoot it! + +01:01:20.998 --> 01:01:22.625 +I can't! I'll smash the window! + +01:01:22.708 --> 01:01:24.877 +God! + +01:01:24.919 --> 01:01:26.545 +Oh, God! Ohh! + +01:01:28.089 --> 01:01:29.799 +Go! Go! + +01:01:32.176 --> 01:01:34.011 +Get down! + +01:01:40.393 --> 01:01:41.851 +Shit! + +01:01:51.569 --> 01:01:52.946 +Ollie, you want +these lights on or off? + +01:01:52.946 --> 01:01:53.446 +Leave 'em on + +01:01:59.828 --> 01:02:00.912 +Oh, God! + +01:02:00.995 --> 01:02:03.289 +Kill it! + +01:02:12.423 --> 01:02:14.383 +Bring torches! +Bring something to keep 'em out! + +01:02:14.466 --> 01:02:15.426 +Come on + +01:02:17.386 --> 01:02:18.554 +Sally! + +01:02:30.441 --> 01:02:32.651 +Where are the goddamn extinguishers? + +01:02:43.411 --> 01:02:44.746 +Get it! Get it! Get it! + +01:02:50.126 --> 01:02:53.087 +Bring torches +We need torches at the window! + +01:02:53.171 --> 01:02:54.714 +Plug that hole! + +01:03:01.929 --> 01:03:02.930 +Dad! + +01:03:08.852 --> 01:03:10.520 +Down! Down! Lay down! + +01:03:24.743 --> 01:03:25.744 +Ohh + +01:03:27.120 --> 01:03:28.121 +My life + +01:03:29.206 --> 01:03:32.666 +my life for you, +your will be done + +01:03:45.971 --> 01:03:48.140 +Daddy! + +01:03:48.224 --> 01:03:50.476 +Bugs! Daddy! + +01:04:05.740 --> 01:04:08.201 +- Nooooo! Billy! +- Daddy! + +01:04:08.284 --> 01:04:10.245 +- Billy! +- Daddy! + +01:04:23.258 --> 01:04:24.718 +Billy! + +01:04:24.801 --> 01:04:25.969 +Dad! + +01:04:26.052 --> 01:04:27.553 +Billy, come back here + +01:04:29.221 --> 01:04:31.223 +- Dad! +- Billy, please! + +01:04:37.104 --> 01:04:38.480 +Billy! + +01:05:07.383 --> 01:05:08.718 +Come on, let's move it! + +01:05:08.801 --> 01:05:10.762 +Somebody please +come over here and help + +01:05:10.845 --> 01:05:12.513 +Here's some tape! + +01:05:14.807 --> 01:05:16.934 +I'm right here +I'm right here Dont worry + +01:05:18.019 --> 01:05:19.979 +Hurry up with the blankets! + +01:05:20.021 --> 01:05:23.023 +It hurts so bad! Please! + +01:05:30.864 --> 01:05:32.532 +It hurts so bad! + +01:05:32.616 --> 01:05:33.617 +Block it up here + +01:05:34.659 --> 01:05:36.453 +Get me some more bags! + +01:05:37.537 --> 01:05:40.207 +Did we get 'em? +Did we get 'em all? + +01:05:41.208 --> 01:05:42.918 +She was right + +01:05:43.001 --> 01:05:45.212 +She said that +it would happen like this + +01:05:45.379 --> 01:05:47.381 +She said that +they would come at night + +01:05:48.548 --> 01:05:50.383 +She told us someone would die + +01:06:14.407 --> 01:06:16.075 +Mommy + +01:06:17.701 --> 01:06:19.661 +Ohh, shh, shh, shh +It's okay + +01:06:20.870 --> 01:06:22.247 +It's okay, it was just a dream + +01:06:23.373 --> 01:06:24.708 +It's just a bad dream + +01:06:25.875 --> 01:06:27.627 +I want my mommy + +01:06:27.711 --> 01:06:29.295 +I know + +01:06:29.379 --> 01:06:31.631 +I know Of course you do + +01:06:31.715 --> 01:06:34.259 +- Shh +I wanna go home + +01:06:34.342 --> 01:06:35.844 +Just sleep + +01:06:37.220 --> 01:06:38.888 +Everything'll be better in the morning + +01:06:45.561 --> 01:06:47.020 +Think he likes you + +01:06:49.606 --> 01:06:52.151 +Well, I hate that +I had to lie to him + +01:06:53.235 --> 01:06:54.695 +You have kids? + +01:06:54.778 --> 01:06:55.988 +No + +01:06:56.071 --> 01:06:58.198 +I always wanted to, but + +01:06:59.324 --> 01:07:00.993 +things haven't been working out + +01:07:03.328 --> 01:07:06.290 +Right now I'm thinking +maybe that's for the best + +01:07:07.499 --> 01:07:11.253 +I saw creatures +fly into the store tonight that... + +01:07:11.336 --> 01:07:13.004 +they shouldn't exist + +01:07:14.505 --> 01:07:17.008 +I keep thinking I'm gonna +wake up in a rubber room + +01:07:18.509 --> 01:07:19.761 +You're not alone in that + +01:07:20.762 --> 01:07:22.221 +We're all right there with you + +01:07:23.347 --> 01:07:25.099 +This isn't gonna end, is it? + +01:07:28.144 --> 01:07:29.145 +David + +01:07:30.229 --> 01:07:32.440 +It's Joe He's getting worse + +01:07:50.374 --> 01:07:52.292 +Joe + +01:07:54.211 --> 01:07:55.962 +How you holdin' up, partner? + +01:07:56.046 --> 01:07:59.383 +David is that you? + +01:08:00.467 --> 01:08:01.968 +Yeah, pal, how you doin'? + +01:08:02.969 --> 01:08:05.764 +It's bad He's bad + +01:08:05.806 --> 01:08:08.474 +Didn't know anything +could hurt like this + +01:08:09.475 --> 01:08:11.811 +If you guys can't help me + +01:08:12.978 --> 01:08:15.314 +you... you gotta end it, okay? + +01:08:17.483 --> 01:08:19.860 +Ollie's got that gun, right? + +01:08:21.320 --> 01:08:23.864 +Right? +- No. No way + +01:08:23.948 --> 01:08:26.283 +You can't fuck with me +on this, bro + +01:08:26.325 --> 01:08:28.494 +Not with me like this + +01:08:28.577 --> 01:08:30.079 +I'll do it + +01:08:30.162 --> 01:08:32.915 +Just give me the gun + +01:08:32.998 --> 01:08:34.625 +Hey, hey Shh + +01:08:34.667 --> 01:08:37.794 +- We're not there yet, okay? +- Oh, please! + +01:08:37.836 --> 01:08:39.587 +Joe, now, listen + +01:08:40.672 --> 01:08:41.631 +Pal + +01:08:42.674 --> 01:08:43.842 +we're gonna work something out + +01:08:43.925 --> 01:08:45.635 +I just need you to hang in +a little longer, okay? + +01:08:45.677 --> 01:08:46.761 +Can we do that? + +01:08:50.640 --> 01:08:52.308 +Stay with him +I'll be back + +01:08:55.687 --> 01:08:59.649 +Hattie, I need to go to the bathroom +Will you watch Billy? + +01:09:01.651 --> 01:09:02.652 +Hattie + +01:09:19.251 --> 01:09:20.252 +See anything? + +01:09:21.837 --> 01:09:24.631 +The last of those bugs +went away about four + +01:09:24.715 --> 01:09:25.674 +Dawn's coming + +01:09:26.717 --> 01:09:28.052 +What's on your mind? + +01:09:28.093 --> 01:09:29.094 +It's Joe + +01:09:31.013 --> 01:09:32.847 +We don't get him +on some serious antibiotics, + +01:09:32.889 --> 01:09:34.057 +he's gonna die of infection + +01:09:34.140 --> 01:09:36.476 +Plus he needs +painkillers in the worst way + +01:09:36.559 --> 01:09:40.271 +All... all... all we got here +is liquor and aspirin + +01:09:40.355 --> 01:09:43.232 +You... you thinkin' about goin' +to that pharmacy next door? + +01:09:43.274 --> 01:09:45.234 +Irene Reppler say +they've got Silvadene... + +01:09:45.276 --> 01:09:46.986 +you know, the stuff +they use in burn wards + +01:09:47.070 --> 01:09:48.029 +She knows where they keep it + +01:09:48.112 --> 01:09:49.280 +Slow down + +01:09:49.364 --> 01:09:51.032 +You can't actually be thinkin' +of doin' this + +01:09:51.074 --> 01:09:52.992 +I'm also thinkin' beyond that + +01:09:53.076 --> 01:09:54.535 +We have to get out of here + +01:09:55.703 --> 01:09:56.913 +I mean permanently. + +01:09:56.954 --> 01:09:59.414 +Why? We got plenty to eat! + +01:09:59.498 --> 01:10:02.334 +What happens when one of those things +decides to break through this window? + +01:10:02.417 --> 01:10:05.003 +I'm talkin' one of the big ones, +like the one that killed Norm + +01:10:05.087 --> 01:10:08.048 +Yeah, and that flaming torch idea +didnt work so well, did it? + +01:10:08.131 --> 01:10:10.258 +We almost burned +the goddamn store down + +01:10:16.556 --> 01:10:17.891 +It's Hattie + +01:10:24.606 --> 01:10:25.774 +Here? + +01:10:25.816 --> 01:10:27.817 +All right, +gently, now Gently + +01:10:27.900 --> 01:10:30.152 +One two three + +01:10:39.745 --> 01:10:41.956 +I don't know +how long she was there like that, + +01:10:42.039 --> 01:10:43.374 +lying there next to us + +01:10:43.457 --> 01:10:45.126 +I thought she was sleeping + +01:10:46.502 --> 01:10:48.337 +I got my 4-wheel drive + +01:10:48.421 --> 01:10:50.005 +It's out there + +01:10:50.089 --> 01:10:51.757 +Y- youre talking about leaving? + +01:10:53.092 --> 01:10:54.592 +Well, we + +01:10:54.634 --> 01:10:56.511 +should hit the pharmacy first + +01:10:56.594 --> 01:10:57.887 +We gotta bring back +supplies for the injured + +01:10:57.971 --> 01:10:59.389 +I mean, if we don't, + +01:10:59.472 --> 01:11:01.433 +Joe Eagleton's gonna die, +and we can't let that happen + +01:11:02.350 --> 01:11:03.518 +But after that + +01:11:04.519 --> 01:11:06.187 +look, my Land Cruiser +can hold eight people + +01:11:06.271 --> 01:11:08.481 +I say we drive south +as far as the fuel takes us + +01:11:08.565 --> 01:11:09.899 +and try to get clear of this mist + +01:11:10.859 --> 01:11:12.861 +That's it? + +01:11:12.944 --> 01:11:14.279 +That's the plan? + +01:11:14.320 --> 01:11:16.239 +- That's what I got +- No, you can't mean it + +01:11:16.322 --> 01:11:18.283 +Not after what happened +to Norton and his group + +01:11:18.366 --> 01:11:20.827 +No, no, no Amanda, think. + +01:11:20.910 --> 01:11:22.911 +Norton got over 200 feet +from this store + +01:11:22.995 --> 01:11:24.455 +That's how much rope play ed out + +01:11:24.538 --> 01:11:27.082 +I'm parked half that distance +from here + +01:11:27.166 --> 01:11:29.126 +But who knows how far +this mist has spread? + +01:11:29.209 --> 01:11:30.711 +It could be +the entire eastern seaboard + +01:11:30.794 --> 01:11:32.963 +Yeah, it could be the whole world, +for all we know + +01:11:33.005 --> 01:11:36.341 +Wouldn't make us any less dead, +now, would it? + +01:11:36.383 --> 01:11:38.218 +We have one gun + +01:11:38.302 --> 01:11:40.304 +- How many rounds? +We got ten left + +01:11:40.345 --> 01:11:41.513 +Ten rounds Jesus + +01:11:41.597 --> 01:11:43.223 +Okay, so ten + +01:11:44.224 --> 01:11:46.226 +Want another reason +to get the hell out of here? + +01:11:46.310 --> 01:11:48.312 +I'll give you the best one + +01:11:48.395 --> 01:11:49.396 +Her + +01:11:50.396 --> 01:11:51.898 +Mrs Carmody + +01:11:51.981 --> 01:11:54.859 +She's our very own Jim Jones + +01:11:54.901 --> 01:11:57.570 +I'd like to leave before people +start drinking the Kool-Aid + +01:11:57.653 --> 01:11:58.654 +He's right + +01:11:58.696 --> 01:12:01.032 +Flakier people get, +the better she's gonna look + +01:12:01.115 --> 01:12:03.785 +No, I don't buy that +It's obvious she's nuts + +01:12:03.868 --> 01:12:05.328 +Look, a few people maybe, but... + +01:12:05.411 --> 01:12:07.705 +No, I count four +She's preachin' to 'em right now + +01:12:07.789 --> 01:12:09.290 +By noon, she'll have four more + +01:12:09.374 --> 01:12:11.501 +By tomorrow night, +when those things come back, + +01:12:11.584 --> 01:12:13.086 +she'll have a congregation, + +01:12:13.169 --> 01:12:16.672 +and then we can start worryin' +about who she's gonna sacrifice + +01:12:16.714 --> 01:12:18.382 +to make it all better + +01:12:18.465 --> 01:12:20.133 +Hmm? + +01:12:20.217 --> 01:12:22.135 +You, Amanda? + +01:12:22.219 --> 01:12:23.470 +My little boy? + +01:12:23.553 --> 01:12:25.138 +He's right + +01:12:25.222 --> 01:12:27.349 +You don't have much faith +in humanity, do you? + +01:12:28.392 --> 01:12:29.768 +None whatsoever + +01:12:29.851 --> 01:12:31.353 +I can't accept that + +01:12:31.395 --> 01:12:34.106 +People are +basically good, decent + +01:12:34.189 --> 01:12:36.400 +My God, David, +we're a civilized society + +01:12:36.483 --> 01:12:37.984 +Sure, as long as +the machines are workin' + +01:12:38.068 --> 01:12:39.319 +And you can dial 9-1-1, + +01:12:39.403 --> 01:12:42.239 +but you take those things away, +you throw people in the dark, + +01:12:42.322 --> 01:12:44.324 +you scare the shit out of them, + +01:12:44.408 --> 01:12:46.242 +no more rules, + +01:12:46.283 --> 01:12:48.285 +Youll see how primitive they get + +01:12:48.369 --> 01:12:51.080 +You scare people badly enough, + +01:12:51.122 --> 01:12:53.624 +you can get 'em to do anything + +01:12:53.708 --> 01:12:57.378 +They'll turn to whoever +promises a solution, + +01:12:57.420 --> 01:12:58.587 +or whatever. + +01:12:58.671 --> 01:13:00.673 +Ollie, please, back me up here + +01:13:00.756 --> 01:13:02.425 +I wish I could + +01:13:02.508 --> 01:13:04.844 +As a species, +we're fundamentally insane + +01:13:05.845 --> 01:13:07.888 +Put more than two of us +in a room, we pick sides + +01:13:07.972 --> 01:13:10.558 +and start dreaming up reasons +to kill one another + +01:13:11.559 --> 01:13:14.227 +Why do you think we invented +politics and religion? + +01:13:14.269 --> 01:13:16.896 +Oh, Jesus, that's just + +01:13:16.980 --> 01:13:17.981 +wrong + +01:13:18.064 --> 01:13:20.608 +Look, nobody has +to decide anything now, okay? + +01:13:20.692 --> 01:13:22.193 +First things first... + +01:13:22.777 --> 01:13:23.737 +the pharmacy + +01:13:25.363 --> 01:13:27.032 +That'll be our test run + +01:13:27.115 --> 01:13:28.074 +Okay? + +01:13:38.334 --> 01:13:40.127 +It's all right, Big Bill + +01:13:40.210 --> 01:13:41.879 +I'm gonna bring you back +some comic books + +01:13:41.962 --> 01:13:43.297 +I dont want them + +01:13:43.338 --> 01:13:45.007 +I want you to stay here + +01:13:45.090 --> 01:13:47.092 +I won't be gone long + +01:13:48.218 --> 01:13:50.137 +Just... just next door + +01:13:50.220 --> 01:13:52.056 +Hey, youll be safe + +01:13:53.640 --> 01:13:54.641 +Daddy... + +01:13:54.725 --> 01:13:56.226 +Daddy, there are things out there + +01:13:57.227 --> 01:13:59.146 +Things... + +01:13:59.188 --> 01:14:02.107 +Yeah There's a lot +less of 'em in the daytime + +01:14:03.650 --> 01:14:04.693 +They'll wait + +01:14:04.777 --> 01:14:06.445 +They'll wait in the mist +where you can't see 'em, + +01:14:06.487 --> 01:14:08.946 +and then when you go +and can't get back in + +01:14:08.988 --> 01:14:10.490 +they'll come and eat you up! + +01:14:10.573 --> 01:14:12.825 +- Shh +- Daddy, don't go! + +01:14:22.168 --> 01:14:23.336 +I'll be back + +01:14:24.670 --> 01:14:25.963 +Big Bill + +01:14:26.005 --> 01:14:27.298 +I promise + +01:14:27.340 --> 01:14:29.675 +I'll be back, and then +I'm gonna take you home + +01:14:30.677 --> 01:14:32.303 +All right? + +01:14:32.345 --> 01:14:34.430 +Together, we're going home + +01:14:35.430 --> 01:14:37.474 +If something happens, +anything at all, + +01:14:37.557 --> 01:14:38.725 +you cut and run + +01:14:38.809 --> 01:14:41.436 +You get your ass back in here, +for your boy's sake + +01:14:41.520 --> 01:14:43.980 +If something happens to me, +I want you to take care of Billy + +01:14:45.023 --> 01:14:48.026 +best as you can, +and long as you can + +01:14:48.110 --> 01:14:49.861 +Land Cruiser's yours now + +01:14:50.946 --> 01:14:52.489 +You... you get him out of here + +01:14:52.572 --> 01:14:53.907 +You just keep drivin' + +01:15:00.497 --> 01:15:02.499 +Where do you think youre going, +Mr David Drayton on? + +01:15:02.541 --> 01:15:05.584 +Are you so anxious +to make your boy an orphan? + +01:15:05.668 --> 01:15:07.753 +My boy is no concern of yours + +01:15:07.837 --> 01:15:09.088 +Listen up + +01:15:09.171 --> 01:15:11.173 +We're going to the pharmacy + +01:15:11.215 --> 01:15:13.217 +We're gonna bring back +some supplies + +01:15:13.300 --> 01:15:16.679 +Also, there maybe people +trapped over there who need help + +01:15:16.721 --> 01:15:18.889 +Listen, folks, listen! + +01:15:18.973 --> 01:15:20.975 +We're not gonna take any chances + +01:15:21.058 --> 01:15:22.518 +If there's any trouble, + +01:15:22.601 --> 01:15:24.603 +we'll come straight back here +to the supermarket + +01:15:24.687 --> 01:15:28.024 +And bring the fiends of hell +down on our heads, thank you + +01:15:28.065 --> 01:15:29.567 +She's right + +01:15:29.650 --> 01:15:31.317 +You'll make 'em notice us + +01:15:31.401 --> 01:15:32.652 +You'll make 'em come + +01:15:33.653 --> 01:15:36.364 +Why can't you just leave +well enough alone? + +01:15:36.406 --> 01:15:38.283 +Lady, this what you call +'"well enough"? + +01:15:38.366 --> 01:15:39.868 +You wanna stop us? + +01:15:39.909 --> 01:15:41.411 +You better explain to Bobby here + +01:15:41.494 --> 01:15:43.747 +why we're not bringin' painkillers +and medicine back for his brother + +01:15:43.830 --> 01:15:45.999 +I'm goin', even if I have to go alone + +01:15:46.082 --> 01:15:47.792 +You'll die out there, young man + +01:15:47.876 --> 01:15:50.920 +You'll walk out that door +and be torn to shreds, + +01:15:51.004 --> 01:15:54.174 +and then your hell-bound pride +will have them come get the rest of us + +01:15:54.257 --> 01:15:57.093 +Yes, they'll come back for all of us, +just like this good lady said + +01:15:57.177 --> 01:15:59.178 +Do you want that +to happen, people? + +01:15:59.261 --> 01:16:02.431 +No! +No! No! No! + +01:16:02.514 --> 01:16:04.516 +Well, it is this kind of hubris + +01:16:04.600 --> 01:16:07.019 +that brought the wrath of God +in the first place + +01:16:07.102 --> 01:16:08.771 +This kind of pride and defiance of... + +01:16:10.564 --> 01:16:12.274 +Shut up, you miserable buzzard! + +01:16:12.316 --> 01:16:14.193 +You old bitch! + +01:16:17.738 --> 01:16:20.824 +Stoning people who piss you off +is perfectly okay + +01:16:20.908 --> 01:16:22.576 +They do it in the Bible, don't they? + +01:16:22.618 --> 01:16:24.453 +And I got lots of peas + +01:16:24.536 --> 01:16:27.121 +David, please, if you want to go, +now's the time + +01:16:27.205 --> 01:16:28.956 +How 'bout it, Army? + +01:16:28.998 --> 01:16:30.500 +Any help from the armed forces? + +01:16:30.583 --> 01:16:31.584 +I'll go + +01:16:34.003 --> 01:16:35.505 +Jim Grondin + +01:16:35.588 --> 01:16:37.090 +I had you in school, didn't I? + +01:16:37.131 --> 01:16:39.133 +Yes, me and my sister Pauline + +01:16:39.175 --> 01:16:40.843 +Pair of underachievers + +01:16:40.927 --> 01:16:42.136 +After you, Jim + +01:16:43.221 --> 01:16:44.639 +Yes, ma'am + +01:16:44.681 --> 01:16:46.015 +Oh, shit. + +01:16:46.099 --> 01:16:48.476 +That it? +That's every body? + +01:16:48.559 --> 01:16:50.061 +Every body that's goin' + +01:16:50.144 --> 01:16:52.146 +Yep +- Okay + +01:16:52.230 --> 01:16:55.273 +Single file, +one by one, all right? + +01:16:55.357 --> 01:16:57.109 +Let's get this thing over with + +01:16:58.235 --> 01:16:59.236 +Let's go + +01:16:59.319 --> 01:17:01.154 +After you +Yes + +01:17:04.157 --> 01:17:05.158 +Stay together + +01:17:08.286 --> 01:17:10.163 +You know what? + +01:17:10.247 --> 01:17:11.748 +Mrs Carmody, youre not helping + +01:17:11.832 --> 01:17:13.500 +Shut the hell up! +- You shut up! + +01:17:20.340 --> 01:17:21.674 +Save the batteries + +01:18:09.137 --> 01:18:10.722 +Shit. + +01:18:10.805 --> 01:18:12.807 +They left the doors propped open + +01:18:14.142 --> 01:18:15.685 +Think something got in? + +01:18:17.186 --> 01:18:20.189 +Let's just +get what we need, + +01:18:20.230 --> 01:18:21.648 +get the hell outta here + +01:18:21.732 --> 01:18:23.192 +Yeah Let's do that + +01:18:23.275 --> 01:18:26.111 +The meds +are over at the end there, + +01:18:26.195 --> 01:18:27.696 +in the cubicle + +01:18:48.174 --> 01:18:49.509 +Will you not do that? + +01:18:49.592 --> 01:18:51.552 +I'm sorry I'm sorry. + +01:18:51.636 --> 01:18:53.596 +Oh, God. + +01:19:18.286 --> 01:19:19.621 +Where's that Silvadene? + +01:19:19.705 --> 01:19:21.206 +It's over behind David + +01:19:21.289 --> 01:19:23.125 +In the fridge Check there + +01:19:29.256 --> 01:19:30.674 +Silvadene Got it + +01:19:31.258 --> 01:19:33.301 +- Good +- Ollie, what are we lookin' for? + +01:19:33.385 --> 01:19:34.886 +Penicillin +Yeah + +01:19:34.970 --> 01:19:36.430 +Any strong antibiotics + +01:19:36.513 --> 01:19:37.514 +Yeah + +01:19:38.265 --> 01:19:41.684 +Pain meds like +Vicodin or OxyContin + +01:19:41.767 --> 01:19:43.269 +Shh! +- OxyContin! + +01:19:44.979 --> 01:19:46.772 +Hydrochloride? + +01:19:49.275 --> 01:19:50.276 +Penicillin + +01:20:01.537 --> 01:20:02.538 +guys + +01:20:06.417 --> 01:20:08.043 +Hurry it up +I hear something + +01:20:11.921 --> 01:20:12.922 +What? + +01:20:15.175 --> 01:20:16.760 +Somethin' fuckin' weird + +01:20:26.353 --> 01:20:28.146 +Oh, God + +01:20:28.355 --> 01:20:29.647 +Oh, God! + +01:20:29.689 --> 01:20:33.651 +No Oh, no + +01:20:33.735 --> 01:20:35.486 +Oh, nooooo + +01:20:35.569 --> 01:20:37.112 +Oh, fuck. + +01:20:39.031 --> 01:20:40.991 +Look +There's another one + +01:20:41.033 --> 01:20:43.827 +Oh, my God +No, no, no + +01:20:43.869 --> 01:20:46.246 +Oh, no, no + +01:20:46.830 --> 01:20:50.000 +guys, let's get out of here now. + +01:20:51.043 --> 01:20:52.920 +Holy shit! + +01:20:56.882 --> 01:20:59.551 +Shit! Shit! Oh, shit! + +01:20:59.635 --> 01:21:04.013 +I'm sorry! I'm sorry! +Help me! + +01:21:04.055 --> 01:21:06.140 +Good Lord! +Help him! + +01:21:11.979 --> 01:21:13.439 +Son of a bitch! + +01:21:13.523 --> 01:21:15.108 +This stuff ain't comin' off! + +01:21:16.109 --> 01:21:18.528 +Oh, man! +He's glued to this fuckin' post! + +01:21:18.569 --> 01:21:20.405 +It's our fault + +01:21:20.488 --> 01:21:22.532 +It's all our fault + +01:21:22.615 --> 01:21:24.075 +It's really stuck + +01:21:28.413 --> 01:21:30.414 +God, I can feel 'em! + +01:21:30.497 --> 01:21:32.499 +I can feel 'em! + +01:21:34.167 --> 01:21:36.086 +Oh, my God! +Jesus! + +01:21:43.260 --> 01:21:44.845 +Oh, my God + +01:21:44.928 --> 01:21:47.389 +I... + +01:21:56.732 --> 01:21:58.691 +There's more! + +01:22:08.701 --> 01:22:09.910 +There's another one! +Hit it! + +01:22:11.829 --> 01:22:14.123 +What the hell is that stuff? + +01:22:14.206 --> 01:22:16.083 +Ollie! One over there! + +01:22:16.125 --> 01:22:17.710 +Ollie, there! + +01:22:17.793 --> 01:22:19.503 +Got it! + +01:22:19.587 --> 01:22:22.048 +There, there, there! +Shoot! Shoot! + +01:22:22.131 --> 01:22:24.008 +Shit! + +01:22:25.925 --> 01:22:26.885 +See 'em? + +01:22:28.553 --> 01:22:31.765 +Bobby! + +01:22:31.806 --> 01:22:33.308 +Bobby! + +01:22:38.480 --> 01:22:40.982 +Hold on, man! Hold on! + +01:22:41.066 --> 01:22:42.776 +- Hold on, man! +- Cut the strand! + +01:22:42.859 --> 01:22:43.860 +Help me! + +01:22:45.195 --> 01:22:46.946 +Let's get out of here! + +01:22:48.948 --> 01:22:51.284 +- A belt! Who's got a belt? +- I got a belt! + +01:22:56.163 --> 01:22:57.498 +I got him, I got him +Hold on + +01:22:58.832 --> 01:23:00.292 +Pull it tight! + +01:23:01.835 --> 01:23:03.462 +Look! Look! + +01:23:11.220 --> 01:23:13.931 +Light! + +01:23:14.014 --> 01:23:16.517 +God! + +01:23:19.645 --> 01:23:22.814 +We gotta get outta here! +Come on! + +01:23:22.855 --> 01:23:25.316 +Let's go, let's go, +let's go, let's go, let's go! + +01:23:25.900 --> 01:23:27.360 +Watch it, watch it, watch it! + +01:23:38.663 --> 01:23:40.081 +Let's get out of here! + +01:23:41.082 --> 01:23:44.168 +All right, go, go, go, go, go, go! +Come on! + +01:23:44.252 --> 01:23:45.420 +Come on! + +01:23:52.634 --> 01:23:54.636 +Oh, my God! + +01:23:56.346 --> 01:23:58.015 +Ollie! Ollie! + +01:24:02.477 --> 01:24:04.354 +Kill it! Kill it! + +01:24:15.073 --> 01:24:16.074 +Fuckers! + +01:24:16.198 --> 01:24:17.241 +Oh, no! Oh, God, he's dead! + +01:24:17.325 --> 01:24:19.994 +He's dead! Get out of here! +Let's go, let's go! + +01:24:20.077 --> 01:24:21.871 +Drayton on, come on, +come on, come on! + +01:24:21.954 --> 01:24:23.456 +Come on, Drayton on, +he's dead! + +01:24:23.539 --> 01:24:24.498 +Come on! + +01:24:55.737 --> 01:24:57.072 +Open the door! + +01:24:58.698 --> 01:24:59.908 +Where's Bobby? + +01:24:59.949 --> 01:25:00.950 +Daddy! + +01:25:02.452 --> 01:25:03.453 +Close up the doors! + +01:25:03.578 --> 01:25:04.537 +Hurry up! + +01:25:04.621 --> 01:25:06.206 +What happened? + +01:25:06.247 --> 01:25:09.000 +They're dead! +They're all dead! + +01:25:25.974 --> 01:25:27.935 +Expiation, because we have seen + +01:25:28.018 --> 01:25:30.562 +the earth scourged +with whips and scorpions + +01:25:30.646 --> 01:25:34.650 +We have seen the earth +vomit forth from her lips + +01:25:34.733 --> 01:25:36.735 +obscenities and profanities + +01:25:36.819 --> 01:25:39.112 +of such nightmare proportions + +01:25:39.195 --> 01:25:43.032 +And for these evil, +lurking spirits, + +01:25:43.116 --> 01:25:45.076 +and for these evil people + +01:25:45.159 --> 01:25:46.494 +How long was I out? + +01:25:46.577 --> 01:25:47.954 +Most of the day + +01:25:49.038 --> 01:25:51.541 +You just came over here to lay down +and went to sleep + +01:25:51.624 --> 01:25:53.292 +Just passed out, is more like it + +01:25:53.334 --> 01:25:54.794 +What will stop this Great Whore? + +01:25:54.877 --> 01:25:56.963 +Just shut down for a while + +01:25:57.046 --> 01:25:58.047 +Sorry + +01:25:58.131 --> 01:25:59.465 +How will it end? + +01:25:59.549 --> 01:26:00.550 +Expiation! + +01:26:00.633 --> 01:26:03.261 +Expiation! +Do you remember yesterday when + +01:26:03.302 --> 01:26:05.013 +How's Joe? + +01:26:05.096 --> 01:26:08.473 +Dead Joe died of his burns +while you were asleep + +01:26:09.057 --> 01:26:10.892 +We were just too late + +01:26:10.976 --> 01:26:12.310 +I told you this would come! + +01:26:12.352 --> 01:26:14.771 +Oh, God, +I thought I was dreaming her voice + +01:26:14.855 --> 01:26:16.148 +No dream + +01:26:16.231 --> 01:26:18.442 +She's getting people whipped up + +01:26:18.483 --> 01:26:21.278 +That poor girl is dead, + +01:26:21.320 --> 01:26:23.697 +and that boy is burnt in the back room! + +01:26:23.780 --> 01:26:25.949 +She's got 'em believing +she's a psychic, + +01:26:26.033 --> 01:26:27.659 +she has a direct line with God + +01:26:27.743 --> 01:26:30.245 +Why wouldn't they? +Woman never shuts up + +01:26:30.329 --> 01:26:32.622 +Like those speeches +Castro used to make + +01:26:35.333 --> 01:26:38.669 +Ollie say youre thinking of leaving + +01:26:38.711 --> 01:26:40.046 +I'm in + +01:26:40.129 --> 01:26:42.089 +No Sorry + +01:26:42.173 --> 01:26:46.010 +I mean, come on, you saw what +happened to Bobby Mike + +01:26:46.052 --> 01:26:47.053 +I won't + +01:26:47.136 --> 01:26:49.847 +do that again +I won't be responsible + +01:26:49.889 --> 01:26:51.349 +You might want to reconsider that + +01:26:51.432 --> 01:26:53.601 +What will... what will keep these evil, + +01:26:53.684 --> 01:26:54.852 +these abominations at bay? + +01:26:54.894 --> 01:26:56.395 +What will keep them away? + +01:26:56.479 --> 01:26:59.482 +"The rock will not hide them +The dead tree gives no shelter" + +01:26:59.523 --> 01:27:00.941 +What will end it? +Let me hear it + +01:27:01.025 --> 01:27:02.901 +- Expiation! +- What are we talking about? + +01:27:03.068 --> 01:27:05.570 +- Expiation! +- Say it again like you mean it! + +01:27:05.654 --> 01:27:06.946 +Expiation! + +01:27:07.030 --> 01:27:11.993 +Welcome to Sesame Street +Today's word is "expiation" + +01:27:12.077 --> 01:27:14.120 +Hallelujah! Hallelujah! + +01:27:14.204 --> 01:27:16.873 +That boy hasn't been right +since the pharmacy + +01:27:16.915 --> 01:27:19.918 +His mind's just snapped +Gone + +01:27:20.001 --> 01:27:21.503 +Hasn't even been two day s + +01:27:22.587 --> 01:27:24.089 +Not even two day s + +01:27:24.172 --> 01:27:26.758 +I'm not spendin' the rest +of my life here, I'll tell you what + +01:27:26.841 --> 01:27:29.511 +I can quietly gather up +some bags of groceries + +01:27:29.552 --> 01:27:32.888 +and hide them up at one of +the check stands by the door + +01:27:32.971 --> 01:27:35.224 +It was your idea +It's your vehicle + +01:27:35.307 --> 01:27:36.809 +It'll be your call + +01:27:38.769 --> 01:27:41.313 +I'd rather die out there trying +than in here waiting + +01:27:43.440 --> 01:27:45.734 +Who will save them? No one + +01:27:45.776 --> 01:27:48.862 +The rocks will not hide them + +01:27:48.946 --> 01:27:51.740 +I want some idea +of what were up against + +01:27:51.782 --> 01:27:53.450 +I want to know what this mist is + +01:27:54.785 --> 01:27:55.953 +I want to talk to the soldiers + +01:27:56.036 --> 01:27:57.537 +Soldiers? What's that gonna do? + +01:27:57.578 --> 01:27:59.831 +You heard what that MP said +at the pharmacy + +01:27:59.914 --> 01:28:02.250 +David, I'm not even sure +I knew he was talking + +01:28:02.291 --> 01:28:03.960 +The situation was insane + +01:28:04.043 --> 01:28:05.837 +He said he was sorry + +01:28:05.920 --> 01:28:07.880 +Wasn't that the word +he used... "sorry"? + +01:28:07.964 --> 01:28:09.966 +That's right +He said it was their fault, right? + +01:28:10.049 --> 01:28:11.592 +What did he mean by that? + +01:28:11.676 --> 01:28:14.178 +That's what were gonna find out + +01:28:14.262 --> 01:28:15.930 +Irene, stay with Billy, please + +01:28:15.972 --> 01:28:17.265 +Verse 17! + +01:28:17.348 --> 01:28:19.851 +"poured out his vial into the air, + +01:28:19.934 --> 01:28:21.811 +"and there came a great voice + +01:28:21.894 --> 01:28:24.605 +"out of the temple of heaven +from the throne, saying, + +01:28:24.689 --> 01:28:27.190 +"'It is done! It is done! ' + +01:28:27.274 --> 01:28:30.485 +"And there were voices +and lightning, + +01:28:30.569 --> 01:28:33.613 +and thunders, +and a great earthquake" + +01:28:33.697 --> 01:28:36.366 +Yes! Come to me! + +01:28:36.450 --> 01:28:37.617 +What? + +01:28:37.659 --> 01:28:39.911 +- Where's your friends? +- I ain't seen 'em + +01:28:39.995 --> 01:28:42.247 +Not that big a store +It's kinda hard to lose + +01:28:42.331 --> 01:28:45.292 +I ain't seen 'em, I said +I look like their keeper? + +01:28:48.462 --> 01:28:51.423 +- What do you want from me? +- What do you know about this mist? + +01:28:51.506 --> 01:28:53.966 +I don't know nothin' +I got nothin' to do with it + +01:28:54.008 --> 01:28:55.801 +That's not what the MP +said in the pharmacy + +01:28:55.843 --> 01:28:57.678 +before the spiders +came out of his skin + +01:28:59.221 --> 01:29:00.973 +They're not in the store + +01:29:01.057 --> 01:29:04.226 +The only place we haven't looked +is the loading dock + +01:29:04.310 --> 01:29:05.269 +because you know + +01:29:05.353 --> 01:29:07.521 +You saw the good face +of God tonight + +01:29:07.605 --> 01:29:08.856 +Yes? Tell us + +01:29:08.939 --> 01:29:11.150 +Here is an old man +who has seen! + +01:29:11.233 --> 01:29:13.402 +Yes, he has seen! + +01:29:13.486 --> 01:29:14.445 +Amen + +01:29:14.528 --> 01:29:16.030 +And I want to say, + +01:29:16.113 --> 01:29:18.240 +do I want to walk with you + +01:29:18.324 --> 01:29:20.992 +into my Father's hands? + +01:29:21.534 --> 01:29:22.535 +Morales + +01:29:23.578 --> 01:29:24.579 +Donaldson + +01:29:27.248 --> 01:29:28.249 +guys + +01:29:30.585 --> 01:29:32.087 +It's the only place they can be + +01:29:33.088 --> 01:29:34.130 +What? + +01:29:34.214 --> 01:29:35.632 +Couldnt just disappear + +01:29:35.674 --> 01:29:38.677 +Look, I told you, +okay, I don't know where they are... + +01:29:45.767 --> 01:29:47.268 +I didn't think they'd do it + +01:29:47.352 --> 01:29:49.895 +They said they would do it, +and I just... + +01:29:49.979 --> 01:29:52.147 +I told them what +the MP said at the pharmacy, + +01:29:52.231 --> 01:29:53.357 +and they swore they'd do it + +01:29:53.440 --> 01:29:55.109 +I just... I didn't think they would + +01:29:55.192 --> 01:29:56.151 +Jesus + +01:29:56.235 --> 01:29:59.446 +It's the Arrowhead Project, +isn't it? + +01:29:59.530 --> 01:30:03.117 +This mist, it's some kind of, what, +military fuckup? + +01:30:03.200 --> 01:30:04.660 +What were you guys +messin' with up there, huh? + +01:30:04.743 --> 01:30:07.621 +We got you now, +you sorry son of a bitch! + +01:30:07.705 --> 01:30:08.664 +Get in there! + +01:30:08.747 --> 01:30:11.750 +It was them! +It was them what done it to us! + +01:30:11.834 --> 01:30:15.337 +It was them what brung down +the final wrath upon us! + +01:30:15.421 --> 01:30:17.880 +Those two peckerwoods that +he's been with this whole time, + +01:30:17.964 --> 01:30:20.383 +they hung themselves in the back +because they knew! + +01:30:20.425 --> 01:30:21.926 +They knew it all along! + +01:30:22.010 --> 01:30:23.845 +- He's crazy He doesn't know... +- Get on your knees! + +01:30:23.886 --> 01:30:25.221 +Stay out of it, Drayton on! + +01:30:25.305 --> 01:30:27.307 +They heard it too, didn't you? +All of ya! + +01:30:27.390 --> 01:30:28.725 +All about the Arrowhead Project + +01:30:28.808 --> 01:30:30.852 +and all that secret shit +up on the mountain + +01:30:30.935 --> 01:30:32.395 +That's what brung it down on us + +01:30:32.478 --> 01:30:34.605 +That's what brung down +the wrath of God! + +01:30:34.689 --> 01:30:35.690 +Oh! + +01:30:37.483 --> 01:30:39.402 +Private Jessup + +01:30:41.321 --> 01:30:42.488 +It wasn't me. + +01:30:42.572 --> 01:30:44.906 +I'm just... +I'm stationed up there + +01:30:44.948 --> 01:30:46.366 +I'm not responsible... + +01:30:46.450 --> 01:30:48.076 +- Bullshit! +- Hell, I'm a local! + +01:30:48.160 --> 01:30:50.162 +Most of you people know me + +01:30:50.245 --> 01:30:52.706 +You stop your chicken shit whining + +01:30:52.789 --> 01:30:55.417 +or I will cut your puling tongue out + +01:30:55.500 --> 01:30:57.044 +Now you tell us! + +01:30:59.087 --> 01:31:00.255 +Tell us + +01:31:00.339 --> 01:31:03.008 +Look, look Okay, okay + +01:31:03.091 --> 01:31:04.509 +I heard stuff + +01:31:04.593 --> 01:31:05.886 +Stuff? + +01:31:05.927 --> 01:31:07.929 +Yes, we all heard stuff + +01:31:09.306 --> 01:31:13.059 +Like how they, um, + +01:31:13.142 --> 01:31:15.227 +how they thought +that there were other dimensions, + +01:31:15.311 --> 01:31:18.105 +you know, other... +other worlds all around us, + +01:31:18.189 --> 01:31:20.691 +and how they wanted +to try and make, um, + +01:31:20.775 --> 01:31:22.234 +a window... + +01:31:22.318 --> 01:31:24.904 +you know, so they could look through +and see what's on the other side + +01:31:27.114 --> 01:31:29.867 +Well, maybe your window +turned out to be a door Didn't it? + +01:31:29.950 --> 01:31:31.786 +Not mine! Those scientists'! + +01:31:31.869 --> 01:31:34.413 +Oh, the scientists! +Yes, the scientists! + +01:31:34.497 --> 01:31:36.624 +They must have ripped +a hole open by accident + +01:31:36.666 --> 01:31:38.459 +This other world +came spilling through to ours + +01:31:38.542 --> 01:31:41.878 +That's what Donaldson was saying +to me right before he killed himself + +01:31:41.961 --> 01:31:43.922 +I didn't understand the half of it + +01:31:45.882 --> 01:31:47.425 +It ain't my fault! + +01:31:47.509 --> 01:31:48.551 +Oh + +01:31:49.636 --> 01:31:52.973 +Ain't His Fault + +01:31:53.056 --> 01:31:55.600 +No, no, no + +01:31:55.642 --> 01:31:57.018 +Ain't nothin' + +01:31:57.102 --> 01:31:59.688 +Ever anybody's fault + +01:31:59.771 --> 01:32:02.107 +But he denies it + +01:32:02.148 --> 01:32:04.651 +He points the finger, + +01:32:04.734 --> 01:32:07.820 +this Judas in our midst + +01:32:07.903 --> 01:32:08.904 +Judas! + +01:32:08.988 --> 01:32:10.823 +David! + +01:32:10.906 --> 01:32:13.158 +You! You! + +01:32:13.200 --> 01:32:15.160 +Don't you know by now? + +01:32:15.202 --> 01:32:17.287 +Don't you know the truth? + +01:32:17.371 --> 01:32:19.957 +We are being punished + +01:32:20.040 --> 01:32:23.627 +For what? For going +against the will of God! + +01:32:23.669 --> 01:32:27.965 +For going against +his forbidden rules of old! + +01:32:28.007 --> 01:32:29.508 +Walking on the moon! + +01:32:29.591 --> 01:32:31.093 +Yes! Yes! + +01:32:31.176 --> 01:32:34.053 +- Or... or splitting his atoms! +Amen! + +01:32:34.137 --> 01:32:36.514 +Or... or... or stem cells + +01:32:36.597 --> 01:32:38.850 +and abortions! + +01:32:38.933 --> 01:32:41.894 +And destroying the secrets of life + +01:32:41.978 --> 01:32:45.231 +that only God above has any right to! + +01:32:45.315 --> 01:32:46.816 +Amen! Amen! + +01:32:46.858 --> 01:32:49.444 +Yes, I know! It is true! + +01:32:49.527 --> 01:32:51.988 +And now we are being punished + +01:32:52.071 --> 01:32:55.074 +The judgment is being +brought down upon us + +01:32:55.158 --> 01:32:57.827 +The fiends of hell, +you see they are let loose, + +01:32:57.869 --> 01:33:01.497 +and star Wormwood blazes! + +01:33:01.580 --> 01:33:02.873 +And it is his fault! + +01:33:02.956 --> 01:33:06.293 +No! No! It is not my fault! No! + +01:33:06.376 --> 01:33:09.338 +They did it! They spit +in the eye of the Almighty! + +01:33:09.421 --> 01:33:10.422 +No! + +01:33:10.505 --> 01:33:12.716 +Get over there! + +01:33:13.258 --> 01:33:14.343 +No! + +01:33:14.426 --> 01:33:16.053 +Judas! + +01:33:17.387 --> 01:33:18.347 +Jim! + +01:33:18.430 --> 01:33:20.891 +Kill him! String him up! + +01:33:23.977 --> 01:33:25.646 +Stand up, you coward! + +01:33:30.232 --> 01:33:31.359 +Jesus! + +01:33:34.362 --> 01:33:35.571 +No! + +01:33:37.114 --> 01:33:39.283 +Expiation! + +01:33:39.867 --> 01:33:40.951 +- No! +Stab him! + +01:33:42.536 --> 01:33:44.455 +Expiation! + +01:33:44.538 --> 01:33:47.249 +Feed him to the beast! + +01:33:47.333 --> 01:33:49.251 +Expiation! + +01:33:49.335 --> 01:33:53.297 +Let the abominations +smell his blood! + +01:33:54.799 --> 01:33:56.467 +No, no! No! + +01:33:59.219 --> 01:34:02.430 +- Jesus! Wait! +- No, David! + +01:34:59.193 --> 01:35:00.611 +Please + +01:35:11.247 --> 01:35:13.916 +The beast will leave us alone tonight + +01:35:15.418 --> 01:35:16.419 +Tomorrow + +01:35:17.754 --> 01:35:20.255 +tomorrow, we'll just +have to wait and see + +01:35:29.598 --> 01:35:30.766 +Daddy + +01:35:32.434 --> 01:35:33.602 +Daddy + +01:35:45.447 --> 01:35:47.282 +Sorry I left you, pal + +01:35:49.617 --> 01:35:51.285 +I'll never leave you again + +01:35:52.620 --> 01:35:53.788 +Promise? + +01:35:55.206 --> 01:35:58.876 +But you have to give me +your best promise, okay? + +01:35:58.960 --> 01:36:02.380 +Your very best promise, +and can never break it + +01:36:02.463 --> 01:36:04.215 +Tell me + +01:36:05.883 --> 01:36:08.219 +Promise you won't let +the monsters get me + +01:36:11.889 --> 01:36:14.058 +Ever No matter what + +01:36:15.767 --> 01:36:17.227 +I promise + +01:36:20.480 --> 01:36:22.273 +I love you, Daddy + +01:36:22.857 --> 01:36:24.234 +I love you, Billy + +01:36:25.235 --> 01:36:26.569 +More than anything + +01:36:56.265 --> 01:36:57.433 +It's dawn + +01:37:02.896 --> 01:37:05.733 +Hey, pal, +you ready to go home? + +01:37:05.774 --> 01:37:07.151 +Come on + +01:37:09.570 --> 01:37:12.572 +Okay, I got the groceries +hidden at check stand number two + +01:37:12.613 --> 01:37:15.116 +Five bags We can grab 'em +and get out the door + +01:37:15.199 --> 01:37:16.492 +Okay + +01:37:16.576 --> 01:37:20.288 +My car's parked in the center lane +of the parking lot, far end + +01:37:20.371 --> 01:37:22.707 +Whoever gets there first, +open up both doors, + +01:37:22.790 --> 01:37:25.293 +and we'll all pile in +as fast as we can, okay? + +01:37:25.376 --> 01:37:26.544 +Let's go + +01:37:49.941 --> 01:37:52.152 +Stealing food now? + +01:37:56.406 --> 01:37:58.408 +Going out now, Mrs Carmody + +01:37:59.701 --> 01:38:01.370 +Please stand aside + +01:38:02.788 --> 01:38:05.332 +You can't go out +I won't allow it + +01:38:05.415 --> 01:38:06.749 +Won't allow it? + +01:38:06.832 --> 01:38:09.502 +It's against God's will + +01:38:09.543 --> 01:38:11.671 +Don't you know that by now? + +01:38:11.754 --> 01:38:16.300 +Haven't I proven my self +again and again and again? + +01:38:16.384 --> 01:38:20.846 +Haven't I shown that I am his vessel? + +01:38:25.726 --> 01:38:27.228 +What's the matter with you? + +01:38:30.564 --> 01:38:32.024 +Don't you believe in God? + +01:38:33.025 --> 01:38:34.567 +No one's interfered with you + +01:38:34.651 --> 01:38:37.237 +All we're asking for +is the same privilege + +01:38:37.320 --> 01:38:38.655 +You heard him + +01:38:40.240 --> 01:38:44.244 +It is these people +who brought this upon us + +01:38:45.537 --> 01:38:46.496 +They... + +01:38:46.579 --> 01:38:50.542 +people who refused to bend +to the will of God, + +01:38:50.583 --> 01:38:53.169 +and claim it privilege + +01:38:53.253 --> 01:38:56.256 +Sinners in pride + +01:38:56.339 --> 01:38:58.341 +Yes, haughty + +01:38:58.383 --> 01:39:00.010 +Privileged! + +01:39:00.552 --> 01:39:04.388 +They mock us They mock our... +our God, our faith, + +01:39:04.430 --> 01:39:07.891 +our values, our very lifestyle + +01:39:07.933 --> 01:39:10.102 +They mock our humility + +01:39:10.185 --> 01:39:12.021 +and our piousness + +01:39:12.062 --> 01:39:15.232 +They piss on us and laugh + +01:39:18.485 --> 01:39:20.154 +It's from them + +01:39:20.237 --> 01:39:23.741 +the blood of human sacrifice +must come + +01:39:23.824 --> 01:39:25.784 +From them + +01:39:25.868 --> 01:39:28.454 +- Come on +- the blood of expiation + +01:39:28.537 --> 01:39:29.537 +Come on + +01:39:29.579 --> 01:39:31.164 +You try it + +01:39:31.247 --> 01:39:32.582 +Fuckin' try it! + +01:39:32.624 --> 01:39:34.083 +Come on! + +01:39:34.167 --> 01:39:36.419 +Get 'em! +- We want the boy + +01:39:36.461 --> 01:39:37.754 +- We want the boy! +- You get back! + +01:39:37.920 --> 01:39:40.006 +- Yeah! +- You get back! + +01:39:40.089 --> 01:39:41.007 +The boy! + +01:39:42.592 --> 01:39:44.427 +Grab that boy! Grab him! + +01:39:48.473 --> 01:39:49.807 +Grab him! + +01:39:51.434 --> 01:39:53.269 +And get the whore too! + +01:39:53.353 --> 01:39:54.812 +Grab her! + +01:39:54.896 --> 01:39:57.314 +Kill 'em! Kill 'em all! + +01:40:12.371 --> 01:40:14.206 +Stay down! +Stay down! Stay down! + +01:40:21.129 --> 01:40:22.798 +I... I killed her + +01:40:24.966 --> 01:40:25.925 +Thank you, Ollie + +01:40:28.135 --> 01:40:29.387 +Let's go + +01:40:30.471 --> 01:40:33.641 +Get that ice machine +out of the way, please + +01:40:36.143 --> 01:40:37.812 +You killed her! + +01:40:37.895 --> 01:40:40.231 +You murdered her! + +01:40:43.818 --> 01:40:45.278 +I wouldn't have shot her, Dave, + +01:40:45.361 --> 01:40:46.988 +not if there'd been any other way + +01:40:47.071 --> 01:40:48.572 +That's why I said thank you + +01:40:48.656 --> 01:40:49.782 +Okay + +01:40:49.865 --> 01:40:52.200 +Okay, then +let's go! + +01:40:54.160 --> 01:40:55.161 +Get up, Myron! + +01:40:55.245 --> 01:40:56.496 +Come on! We gotta go! + +01:40:56.579 --> 01:40:57.580 +My ankle! + +01:41:06.047 --> 01:41:08.174 +Okay All the way down! + +01:41:09.217 --> 01:41:10.844 +Where are they? + +01:41:10.927 --> 01:41:12.762 +Bud! Myron! + +01:41:12.846 --> 01:41:13.847 +Ambrose! + +01:41:13.930 --> 01:41:15.515 +I think I broke it! + +01:41:15.598 --> 01:41:17.142 +Come on! Come on! + +01:41:17.225 --> 01:41:18.727 +We gotta go! +Come on, come on! + +01:41:18.810 --> 01:41:20.019 +They're lost! + +01:41:27.735 --> 01:41:29.361 +- Oh, Jesus +- Ollie! + +01:41:29.445 --> 01:41:31.989 +Ollie! + +01:42:11.736 --> 01:42:13.071 +All that screaming! + +01:42:14.238 --> 01:42:16.573 +Are they out there? +Can they see us? + +01:42:26.416 --> 01:42:28.835 +Let me... let me in! +Let me in! + +01:42:43.265 --> 01:42:44.767 +Are we going? + +01:42:51.607 --> 01:42:52.900 +- No +- Yeah + +01:42:52.942 --> 01:42:55.069 +- No! No! +- Yeah! + +01:42:55.111 --> 01:42:56.445 +- Daddy +- David + +01:42:56.529 --> 01:42:58.447 +- David, no +- Daddy, no + +01:42:58.531 --> 01:43:00.283 +- David! +- Daddy! + +01:43:00.366 --> 01:43:01.867 +Get back in the car! + +01:43:01.951 --> 01:43:03.577 +- Daddy! +- David! + +01:43:13.920 --> 01:43:15.630 +Oh, my God! + +01:43:18.466 --> 01:43:20.427 +Oh, my God! + +01:43:40.613 --> 01:43:41.614 +We gotta go + +01:45:40.812 --> 01:45:42.772 +I told her I'd fix it + +01:45:46.192 --> 01:45:48.111 +Front window + +01:45:48.194 --> 01:45:49.529 +broken open + +01:45:53.283 --> 01:45:54.409 +Tree + +01:45:56.619 --> 01:45:57.578 +My + +01:45:58.662 --> 01:45:59.997 +grandfather's tree + +01:46:15.054 --> 01:46:18.390 +I'm sorry, David, +I'm just so sorry + +01:46:33.488 --> 01:46:34.447 +Let's, uh + +01:46:36.824 --> 01:46:37.951 +see how far this + +01:46:39.744 --> 01:46:41.955 +fuel takes us, huh? + +01:46:45.083 --> 01:46:47.085 +Maybe we'll get clear of the mist + +01:50:03.399 --> 01:50:04.567 +Well + +01:50:05.817 --> 01:50:07.819 +we gave it a good shot + +01:50:09.237 --> 01:50:10.739 +Nobody can say we didn't + +01:50:12.741 --> 01:50:14.451 +Nope + +01:50:14.534 --> 01:50:16.369 +Nobody can say that + +01:51:45.455 --> 01:51:46.415 +Well + +01:51:48.625 --> 01:51:50.127 +We got, uh + +01:51:54.631 --> 01:51:55.590 +four + +01:52:00.303 --> 01:52:01.262 +Four bullets + +01:52:05.891 --> 01:52:07.393 +But there's five of us + +01:52:17.903 --> 01:52:19.655 +I'll figure something out + +01:54:18.394 --> 01:54:19.895 +Come on! + +01:54:25.901 --> 01:54:27.236 +Come on! + +01:54:28.529 --> 01:54:30.031 +Come on! + +01:54:33.409 --> 01:54:36.370 +Come on Come on + +01:54:36.454 --> 01:54:39.665 +Come on + +01:54:46.922 --> 01:54:48.214 +Come on + +01:54:48.381 --> 01:54:50.091 +Come on + +01:54:50.258 --> 01:54:51.760 +Come on + +01:54:52.844 --> 01:54:54.638 +Come on, come on! + +01:54:54.804 --> 01:54:57.891 +Come on! Come on! + +01:56:34.984 --> 01:56:37.486 +They're... they're dead + +01:56:37.570 --> 01:56:39.030 +For what? + diff --git a/files/assets/2.vtt b/files/assets/2.vtt new file mode 100644 index 000000000..38637f142 --- /dev/null +++ b/files/assets/2.vtt @@ -0,0 +1,4032 @@ +WEBVTT + +00:00:02.000 --> 00:00:12.000 +RIPPED & UPLOADED BY +LUISUBS + +00:00:38.914 --> 00:00:42.001 +The year, 1462. + +00:00:42.168 --> 00:00:45.504 +Constantinople had fallen. + +00:00:45.671 --> 00:00:49.467 +Moslem Turks swept into Europe +with a vast superior force, + +00:00:49.633 --> 00:00:53.679 +striking at Romania, +threatening all of Christendom. + +00:00:53.846 --> 00:00:56.140 +From Transylvania arose +a Romanian knight + +00:00:56.307 --> 00:00:58.350 +of the Sacred Order of the Dragon + +00:00:58.559 --> 00:01:00.936 +known as Dracula. + +00:01:16.702 --> 00:01:21.832 +On the eve of the battle, +his bride, Elizabeta, + +00:01:21.999 --> 00:01:25.169 +whom he prized +above all things on earth, + +00:01:25.336 --> 00:01:29.548 +knew that he must face +an insurmountable force + +00:01:29.715 --> 00:01:34.386 +from which he might never return. + +00:02:30.609 --> 00:02:35.072 +God be praised, I am victorious. + +00:02:44.373 --> 00:02:47.751 +Elizabeta. + +00:02:49.420 --> 00:02:54.258 +The vengeful Turks +shot an arrow into the castle + +00:02:54.425 --> 00:02:57.011 +carrying false news +of Dracula's death. + +00:02:57.178 --> 00:03:03.058 +Elizabeta, believing him dead, +flung herself into the river. + +00:03:41.305 --> 00:03:43.724 +My prince is dead. + +00:03:43.891 --> 00:03:46.101 +All is lost without him. + +00:03:46.268 --> 00:03:50.231 +May God unite us in heaven. + +00:04:03.202 --> 00:04:05.704 +She has taken her own life. + +00:04:05.871 --> 00:04:08.666 +Her soul cannot be saved. + +00:04:09.416 --> 00:04:11.835 +She is damned. + +00:04:12.002 --> 00:04:14.380 +It is God's law. + +00:04:22.846 --> 00:04:25.891 +Is this my reward +for defending God's church? + +00:04:26.517 --> 00:04:27.559 +Sacrilege! + +00:04:27.726 --> 00:04:31.188 +I renounce God! + +00:04:32.106 --> 00:04:36.193 +I shall rise from +my own death + +00:04:36.360 --> 00:04:40.698 +to avenge hers with all +the powers of darkness. + +00:04:58.299 --> 00:05:02.011 +The blood is the life + +00:05:02.177 --> 00:05:06.807 +and it shall be mine! + +00:06:02.071 --> 00:06:06.950 +I've done everything +that you asked, master. + +00:06:07.117 --> 00:06:12.164 +All the preparations are +in order. Everything. + +00:06:12.331 --> 00:06:16.877 +I await your command, +for I know + +00:06:17.044 --> 00:06:21.173 +that when the rewards +are given, + +00:06:21.340 --> 00:06:25.010 +I will be one of those who +benefits from your generosity. + +00:06:30.474 --> 00:06:32.768 +Thank you. + +00:06:33.977 --> 00:06:36.730 +Gone mad. +Renfield is deranged. + +00:06:38.482 --> 00:06:40.567 +He's lost his greedy mind, +poorchap. + +00:06:40.734 --> 00:06:43.320 +I want you to take over +for his foreign client, + +00:06:43.487 --> 00:06:45.406 +this rather eccentric +Count Dracula. + +00:06:45.572 --> 00:06:47.908 +He's buying up property +around London. + +00:06:48.075 --> 00:06:51.912 +Of course, sir. I'll attend to the count. +Thank you for your confidence. + +00:06:52.079 --> 00:06:55.040 +This is a great opportunity +for you, Harker. + +00:06:55.207 --> 00:06:58.252 +You'll have to leave for +Transylvania immediately. + +00:06:58.419 --> 00:07:02.089 +Opportunities such as this +come but once in a lifetime. + +00:07:02.381 --> 00:07:04.591 +Yes, of course, sir. + +00:07:04.758 --> 00:07:10.013 +If I may I enquire, what in fact happened +to Mr. Renfield in Transylvania? + +00:07:10.180 --> 00:07:14.393 +Nothing. Nothing. +Personal problems. + +00:07:14.560 --> 00:07:19.731 +Close these transactions, and your +future with this firm is assured. + +00:07:19.898 --> 00:07:24.236 +Yes, sir. +I will give it my full attention. + +00:07:26.405 --> 00:07:29.324 +We've waited this long, +haven't we? + +00:07:29.491 --> 00:07:31.618 +We can be married +when I return. + +00:07:33.620 --> 00:07:35.080 +Ahem. Of course. + +00:07:35.247 --> 00:07:37.374 +I'll write. + +00:07:38.459 --> 00:07:41.837 +Jonathan. Jonathan. + +00:07:44.840 --> 00:07:50.012 +Jonathan, I love you. +I love you, Mina. + +00:08:19.124 --> 00:08:24.129 +Twenty-fifth May, Budapest. +Left Budapest early this morning. + +00:08:24.296 --> 00:08:29.676 +The impression I had was that we were +leaving the West and entering the East. + +00:08:29.843 --> 00:08:33.764 +The district I am to enter is in +the extreme east of the country + +00:08:33.931 --> 00:08:35.641 +just on the borders +of three states: + +00:08:35.807 --> 00:08:38.227 +Transylvania, Moldavia +and Bukovina, + +00:08:38.393 --> 00:08:40.562 +in the midst +of the Carpathian Mountains. + +00:08:40.729 --> 00:08:44.441 +One of the wildest +and least known portions of Europe. + +00:08:46.818 --> 00:08:52.616 +My friend, +welcome to the Carpathians. + +00:08:52.783 --> 00:08:56.161 +I am anxiously expecting you. + +00:08:56.328 --> 00:09:01.917 +At the Borgo Pass, my carriage +will await you and bring you to me. + +00:09:02.084 --> 00:09:06.964 +I trust your journey from London +has been a happy one + +00:09:07.130 --> 00:09:13.136 +and that you will enjoy your stay +in my beautiful land. + +00:09:13.303 --> 00:09:17.891 +Your friend, D. + +00:09:25.357 --> 00:09:28.360 +Diary, 25th May. + +00:09:28.527 --> 00:09:31.822 +My dear Jonathan +has been gone almost a week. + +00:09:32.030 --> 00:09:35.742 +And although I was disappointed we +could not marry before his departure, + +00:09:35.909 --> 00:09:39.037 +I am happy that he got sent +on this important assignment. + +00:09:39.204 --> 00:09:42.040 +I am longing to hear all the news. + +00:09:42.207 --> 00:09:46.253 +It must be so nice +to see strange countries. + +00:09:46.420 --> 00:09:52.718 +I wonder if we, I mean Jonathan +and I, shall ever see them together. + +00:10:06.023 --> 00:10:10.027 +We're early, driver. +No one is here. + +00:10:10.193 --> 00:10:12.654 +For the dead travel fast. + +00:11:28.313 --> 00:11:30.857 +I say, is the castle far? + +00:12:49.853 --> 00:12:53.482 +Welcome to my home. + +00:12:53.648 --> 00:12:58.820 +Enter freely of your own will and leave +some of the happiness you bring. + +00:12:58.987 --> 00:13:04.868 +Count Dracula? +I am Dracula. + +00:13:05.035 --> 00:13:09.956 +And I bid you welcome, +Mr. Harker, to my house. + +00:13:12.000 --> 00:13:15.128 +Come in. + +00:13:29.059 --> 00:13:33.021 +You will, I trust, excuse me + +00:13:33.188 --> 00:13:36.399 +that I do not join you. + +00:13:38.109 --> 00:13:40.862 +But I have already dined, + +00:13:42.072 --> 00:13:45.158 +and I never drink... + +00:13:47.118 --> 00:13:49.246 +wine. + +00:13:54.334 --> 00:13:58.421 +An ancestor? +I see a resemblance. + +00:13:59.673 --> 00:14:02.926 +The order of the Dracul. + +00:14:04.344 --> 00:14:07.180 +The Dragon. + +00:14:07.347 --> 00:14:13.436 +An ancient society +pledging my forefathers + +00:14:13.603 --> 00:14:19.442 +to defend the Church +against all enemies of Christ. + +00:14:20.861 --> 00:14:27.200 +That relationship +was not entirely successful. + +00:14:28.159 --> 00:14:30.078 +Oh, yes. + +00:14:34.207 --> 00:14:37.377 +It is no laughing matter. + +00:14:40.046 --> 00:14:43.967 +We Draculs have a right +to be proud. + +00:14:44.134 --> 00:14:46.761 +What devil or witch +was ever so great as Attila + +00:14:46.928 --> 00:14:51.474 +whose blood flows +in these veins? + +00:14:55.103 --> 00:14:56.813 +Blood... + +00:15:01.526 --> 00:15:07.282 +Is too precious a thing +in these times. + +00:15:10.035 --> 00:15:14.331 +The warlike days are over. + +00:15:15.457 --> 00:15:22.172 +The victories of my great race +are but a tale to be told. + +00:15:25.717 --> 00:15:30.931 +I am the last +of my kind. + +00:15:31.973 --> 00:15:38.146 +I have offended you with my +ignorance, count. Forgive me. + +00:15:50.033 --> 00:15:55.914 +I do so long to go through the crowded +streets of your mighty London. + +00:15:56.081 --> 00:16:00.835 +To be in the midst of the whirl +and the rush of humanity. + +00:16:01.002 --> 00:16:06.508 +To share its life, +its changes, its death. + +00:16:06.675 --> 00:16:10.762 +There. You, count, are-- + +00:16:12.555 --> 00:16:17.519 +Are the owner of Carfax Abbey +in Purfleet. Congratulations. + +00:16:17.686 --> 00:16:21.982 +Your firm writes most +highly of your talents. + +00:16:22.148 --> 00:16:25.610 +They say +you are a man of good... + +00:16:26.027 --> 00:16:28.154 +taste. + +00:16:29.406 --> 00:16:34.619 +And that you are a worthy +substitute to your predecessor, + +00:16:34.786 --> 00:16:36.955 +Mr. Renfield. + +00:16:37.122 --> 00:16:39.958 +You may rely on me, +count + +00:16:40.125 --> 00:16:41.418 +Forgive my curiosity, + +00:16:41.584 --> 00:16:45.005 +but why 10 houses in such precise +locations around London? + +00:16:45.171 --> 00:16:48.091 +Is it to raise +the market value? + +00:16:50.802 --> 00:16:54.639 +Do you believe in destiny? + +00:16:56.307 --> 00:17:01.146 +That even the powers of time + +00:17:01.312 --> 00:17:06.818 +can be altered +for a single purpose? + +00:17:13.700 --> 00:17:18.788 +The luckiest man who walks +on this earth is the one who finds... + +00:17:19.664 --> 00:17:22.042 +true love. + +00:17:22.208 --> 00:17:27.380 +You found Mina. +I thought she was lost. + +00:17:27.547 --> 00:17:30.633 +We're to be married +as soon as I return. + +00:17:30.800 --> 00:17:34.262 +Are you married, count? + +00:17:34.429 --> 00:17:36.097 +Sir, are you married? + +00:17:36.264 --> 00:17:38.058 +I... + +00:17:38.224 --> 00:17:41.686 +I was married once. + +00:17:41.853 --> 00:17:44.481 +Ages ago, it seems. + +00:17:45.356 --> 00:17:47.275 +She died. + +00:17:47.442 --> 00:17:53.073 +Oh. I'm very sorry. +She was fortunate. + +00:17:55.658 --> 00:17:59.204 +My life, at its best, is misery. + +00:18:04.000 --> 00:18:08.296 +She will, no doubt, +make a devoted wife, + +00:18:08.463 --> 00:18:12.300 +and you, +a faithful husband. + +00:18:14.260 --> 00:18:15.762 +Come. + +00:18:15.929 --> 00:18:21.267 +Write now, my friend, +to your firm and to any loved ones + +00:18:21.434 --> 00:18:27.982 +and say that it should please you to +stay with me until a month from now. + +00:18:29.484 --> 00:18:34.405 +A month? Do you wish me +to stay so long? + +00:18:37.117 --> 00:18:41.121 +I will take no refusal. + +00:18:52.340 --> 00:18:55.510 +Diary, 30th of May, +1897. + +00:18:55.677 --> 00:18:59.848 +I know that Jonathan does not want me to +stay here with Lucy while he is away. + +00:19:00.723 --> 00:19:02.392 +He thinks that if I +become accustomed + +00:19:02.559 --> 00:19:05.186 +to the wealth and privileges +of the Weston family, + +00:19:05.353 --> 00:19:09.149 +I will not be content as the wife +of a mere clerk in a law firm. + +00:19:09.315 --> 00:19:12.110 +But Lucy and I have been friends +since we were children. + +00:19:12.277 --> 00:19:16.489 +And she has never minded +that I am only a schoolmistress. + +00:19:24.747 --> 00:19:26.833 +Oh, how disgustingly awful. + +00:19:29.794 --> 00:19:31.212 +Mina. + +00:19:32.630 --> 00:19:34.340 +Mina. + +00:19:37.010 --> 00:19:41.139 +Oh, Mina, +you're always working. + +00:19:41.306 --> 00:19:43.099 +Is your ambitious John Harker + +00:19:43.266 --> 00:19:46.811 +forcing you to learn +that ridiculous machine? + +00:19:46.978 --> 00:19:49.314 +When he could be +forcing you to perform + +00:19:49.480 --> 00:19:53.776 +unspeakable acts of desperate +passion on the parlor floor. + +00:19:53.943 --> 00:19:58.823 +Lucy, really. You shouldn't talk +about my fiancé in such a way. + +00:19:58.990 --> 00:20:02.452 +There's more to marriage +than carnal pleasures. + +00:20:02.619 --> 00:20:07.624 +Oh, Mina. So I see. +Much, much more. + +00:20:09.876 --> 00:20:12.462 +Oh. Oh, that's-- + +00:20:15.131 --> 00:20:16.966 +What is it, Lucy? + +00:20:17.133 --> 00:20:20.220 +Oh, Mina. +Because I don't understand it. + +00:20:20.386 --> 00:20:25.058 +Can man and woman +really do that? + +00:20:25.225 --> 00:20:29.437 +I did. Only last night. +Fibber. You did not. + +00:20:29.604 --> 00:20:35.026 +Yes, I did. +Well, in my dreams. + +00:20:35.193 --> 00:20:40.865 +Jonathan measures up, +doesn't he? You can tell Lucy. + +00:20:41.032 --> 00:20:43.576 +We've kissed, that's all. + +00:20:43.743 --> 00:20:47.914 +He thinks he's too poor +to marry me. + +00:20:48.081 --> 00:20:51.292 +It's all the worse now that I'm here +visiting you at Hillingham, + +00:20:51.459 --> 00:20:53.044 +my rich friend. + +00:20:53.211 --> 00:20:56.589 +Yes, but not even one +marriage proposal. + +00:20:56.756 --> 00:20:59.217 +And here I am, almost 20. + +00:20:59.384 --> 00:21:01.594 +Practically a hag. + +00:21:07.392 --> 00:21:10.311 +Mr. Quincey P. Morris. + +00:21:11.729 --> 00:21:15.441 +- Oh, look. +- What is that? + +00:21:15.608 --> 00:21:17.819 +A Texan. + +00:21:17.986 --> 00:21:20.029 +Quincey P. Morris. + +00:21:20.196 --> 00:21:22.949 +He's so young and fresh, + +00:21:23.116 --> 00:21:25.326 +like a wild stallion +between my legs. + +00:21:25.493 --> 00:21:27.453 +You're positively indecent. + +00:21:27.620 --> 00:21:30.081 +I just know what men desire. + +00:21:30.248 --> 00:21:32.583 +Watch. +Lucy. + +00:21:32.750 --> 00:21:34.627 +Quincey, darling. +Miss Lucy. + +00:21:35.712 --> 00:21:37.630 +Why, you're as fresh +as the spring rain. + +00:21:37.797 --> 00:21:39.716 +Oh, thank you. + +00:21:40.758 --> 00:21:42.927 +Oh, Quincy. + +00:21:43.678 --> 00:21:46.222 +Please let me +touch it. + +00:21:47.223 --> 00:21:50.268 +It's so big. + +00:21:53.396 --> 00:21:54.814 +Little girl. + +00:21:54.981 --> 00:21:58.151 +Oh, my dear, +sweet little girl. + +00:21:58.318 --> 00:22:00.403 +I hold your hand, + +00:22:00.570 --> 00:22:02.822 +and you've kissed me. +Jack! + +00:22:04.198 --> 00:22:07.702 +Oceans of love-- +Oh, Jack, my darling. + +00:22:07.869 --> 00:22:09.495 +Oh, poor little baby. + +00:22:09.662 --> 00:22:11.539 +My kitten, +come over here. + +00:22:11.706 --> 00:22:13.875 +Come over here +and I'll kiss it better. + +00:22:14.042 --> 00:22:16.252 +My poor little blossom. + +00:22:16.419 --> 00:22:19.505 +My poor little doctor. +Brilliant doctor. + +00:22:19.672 --> 00:22:21.507 +Hello, Quincey. +Jack. + +00:22:21.674 --> 00:22:23.926 +What a naughty bear. +Let me feel your-- + +00:22:24.093 --> 00:22:27.263 +Arthur Holmwood, Esquire. +Arthur! + +00:22:28.014 --> 00:22:30.391 +Oh, my darling. + +00:22:30.558 --> 00:22:32.977 +Oh, you look wonderful. + +00:22:33.144 --> 00:22:35.938 +I'm so sorry +about your hat. + +00:22:36.105 --> 00:22:37.940 +Absolutely Charming. +It's my snake dress. + +00:22:38.107 --> 00:22:39.400 +Is it really? + +00:22:39.567 --> 00:22:42.278 +Lucy is a pure +and virtuous girl, + +00:22:42.445 --> 00:22:46.449 +but I admit that her free way +of speaking shocks me sometimes. + +00:22:46.616 --> 00:22:49.619 +Jonathan says it is a defect +of the aristocracy + +00:22:49.786 --> 00:22:51.996 +that they say what they please. + +00:22:52.163 --> 00:22:57.293 +The truth is that I admire Lucy, and I'm +not surprised that men flock around her. + +00:22:57.460 --> 00:23:00.338 +I wish I were as pretty +and as adored as she. + +00:23:18.439 --> 00:23:21.150 +What manner of man is this? + +00:23:21.317 --> 00:23:23.778 +R.M. Renfield, +successful solicitor + +00:23:23.945 --> 00:23:26.364 +in the firm of Hawkins +and Thompkins, + +00:23:26.531 --> 00:23:29.742 +respected member of +the Lord Nugent's Windem Club, + +00:23:29.909 --> 00:23:34.288 +returns from business +abroad in Transylvania, + +00:23:34.455 --> 00:23:37.417 +promptly suffers +a complete mental breakdown. + +00:23:37.583 --> 00:23:40.837 +He's now obsessed +with some blood lust. + +00:23:44.924 --> 00:23:46.509 +George. + +00:23:48.845 --> 00:23:50.805 +Wait here. + +00:23:58.020 --> 00:24:01.065 +Would you care for +an hors cf oeuvre, Dr. Seward, + +00:24:01.232 --> 00:24:03.901 +or a canapé? + +00:24:04.068 --> 00:24:07.613 +No, thank you, Mr. Renfield. +How are you feeling tonight? + +00:24:08.865 --> 00:24:11.367 +Far better than you, +my lovesick doctor. + +00:24:11.534 --> 00:24:13.369 +Is my personal life +of interest to you? + +00:24:13.536 --> 00:24:17.415 +Of course it is. +All life interests me. + +00:24:17.582 --> 00:24:20.460 +Your diet, Mr. Renfield, +is disgusting. + +00:24:20.626 --> 00:24:24.046 +Actually, +they're perfectly nutritious. + +00:24:24.213 --> 00:24:27.008 +You see, +each life that I ingest + +00:24:27.175 --> 00:24:29.385 +gives back life to me. + +00:24:33.014 --> 00:24:35.850 +A fly gives you life? + +00:24:36.017 --> 00:24:37.727 +Certainly. + +00:24:37.894 --> 00:24:41.898 +But you might as well ask a man to eat +molecules with a pair of chopsticks + +00:24:42.064 --> 00:24:44.817 +than to interest me +in a lesser carnivore. + +00:24:44.984 --> 00:24:48.529 +I shall have to invent a new +classification of lunatic for you. + +00:24:49.655 --> 00:24:53.910 +What about spiders? +Spiders eat the flies. + +00:24:55.495 --> 00:24:57.580 +Yes, spiders eat them. + +00:24:57.747 --> 00:25:00.082 +What about sparrows? + +00:25:00.249 --> 00:25:03.586 +Oh, yes. +Did you say sparrows? + +00:25:03.753 --> 00:25:07.924 +Something larger, perhaps? +Oh, yes. + +00:25:09.258 --> 00:25:11.385 +A kitten. + +00:25:11.552 --> 00:25:13.095 +I beg you. + +00:25:13.262 --> 00:25:16.224 +A little, sleek-- +A playful kitten. + +00:25:16.390 --> 00:25:19.685 +Something I can teach. +Something I can feed. + +00:25:19.852 --> 00:25:21.687 +No one would +refuse me a kitten. + +00:25:21.854 --> 00:25:24.148 +Wouldn't you prefer a cat? + +00:25:26.317 --> 00:25:27.944 +Oh, yes. + +00:25:28.110 --> 00:25:30.154 +A big cat. + +00:25:30.321 --> 00:25:33.282 +My salvation depends upon it! +Your salvation? + +00:25:33.449 --> 00:25:35.451 +Yes. I need lives. + +00:25:35.618 --> 00:25:38.829 +I need lives for the master. +What master? + +00:25:41.457 --> 00:25:43.960 +The master will come... + +00:25:45.044 --> 00:25:48.130 +and he has promised +to make me immortal. + +00:25:48.297 --> 00:25:49.840 +How? + +00:25:51.425 --> 00:25:53.135 +Get him off me! + +00:25:54.554 --> 00:25:56.847 +The blood is the life! + +00:25:57.932 --> 00:26:00.017 +The blood is the life! + +00:26:01.769 --> 00:26:04.438 +Thirtieth May, Castle Dracula. + +00:26:04.605 --> 00:26:08.901 +I think strange things which +I dare not confess to my own soul. + +00:26:09.068 --> 00:26:10.403 +The count, + +00:26:10.570 --> 00:26:13.990 +the way he looked at Mina's +picture fills me with dread, + +00:26:14.156 --> 00:26:17.034 +as if I have a part to play +in a story that is not known to me. + +00:26:41.934 --> 00:26:43.269 +I didn't hear you come in. + +00:26:46.731 --> 00:26:49.817 +Take care how +you out yourself. + +00:26:49.984 --> 00:26:53.362 +It is more dangerous +than you think. + +00:26:59.702 --> 00:27:04.707 +A foul bauble +of man's vanity. + +00:27:04.874 --> 00:27:07.209 +Perhaps you should + +00:27:07.376 --> 00:27:09.545 +grow a beard. + +00:27:17.053 --> 00:27:19.889 +The letters I requested. + +00:27:20.056 --> 00:27:22.266 +Have you written them? + +00:27:38.824 --> 00:27:40.326 +Good. + +00:27:49.460 --> 00:27:52.838 +Should you leave these rooms, + +00:27:54.256 --> 00:27:56.425 +you will not, by any chance, + +00:27:56.592 --> 00:27:59.887 +go to sleep in any other +part of the castle. + +00:28:01.597 --> 00:28:03.808 +It is old... + +00:28:05.017 --> 00:28:07.937 +and has many bad memories. + +00:28:09.980 --> 00:28:13.609 +Be warned. +I'm sure I understand. + +00:28:22.159 --> 00:28:26.205 +Do not put your faith +in such trinkets of deceit. + +00:28:27.915 --> 00:28:30.668 +We are in Transylvania. + +00:28:32.128 --> 00:28:35.715 +Transylvania is not England. + +00:28:35.881 --> 00:28:39.051 +Our ways are not your ways. + +00:28:39.218 --> 00:28:41.220 +And to you, + +00:28:41.387 --> 00:28:44.640 +there shall be +many strange things. + +00:28:44.807 --> 00:28:48.060 +I've seen many +strange things already. + +00:28:48.227 --> 00:28:51.021 +Bloody wolves chasing me +through some blue inferno! + +00:28:56.861 --> 00:28:59.655 +Listen to them. + +00:29:04.034 --> 00:29:07.037 +The children of the night. + +00:29:08.956 --> 00:29:11.333 +What sweet music +they make. + +00:29:11.500 --> 00:29:14.545 +Music? Those animals? + +00:29:48.537 --> 00:29:52.917 +I did as Dracula instructed. +I wrote three letters. + +00:29:53.083 --> 00:29:56.545 +To the firm, to my family +and to my beloved Mina. + +00:29:56.712 --> 00:29:59.632 +I said nothing of my fears +as he will read them, no doubt. + +00:30:05.012 --> 00:30:07.473 +I know now that I am a prisoner. + +00:31:32.933 --> 00:31:34.643 +Jonathan. + +00:31:35.936 --> 00:31:38.188 +Jonathan, come to me. + +00:31:47.907 --> 00:31:49.658 +Come. + +00:32:08.135 --> 00:32:09.887 +Lay down. + +00:32:11.221 --> 00:32:13.223 +Lay back into my arms. + +00:32:22.858 --> 00:32:25.235 +Lay back, Jonathan. + +00:34:26.231 --> 00:34:30.152 +How dare you touch him! +He belongs to me! + +00:34:30.736 --> 00:34:32.654 +You yourself never loved. + +00:34:35.866 --> 00:34:40.496 +Yes. I too can love. + +00:34:42.664 --> 00:34:46.710 +And I shall love again. + +00:34:55.219 --> 00:34:57.930 +Are we to have nothing tonight? + +00:35:42.141 --> 00:35:44.726 +Dearest Mina, all is well here. + +00:35:44.893 --> 00:35:47.729 +The count has insisted +I remain for a month + +00:35:47.896 --> 00:35:50.107 +to tutor him in English custom. + +00:35:50.274 --> 00:35:53.652 +I can say no more, +except I love you. + +00:35:53.819 --> 00:35:56.488 +Ever faithful, Jonathan. + +00:35:59.908 --> 00:36:03.579 +The letters I have written +have undoubtedly sealed my doom. + +00:36:07.499 --> 00:36:11.253 +The count's gypsies, fearless +warriors who are loyal to the death + +00:36:11.420 --> 00:36:13.630 +to whatever nobleman +they serve... + +00:36:16.466 --> 00:36:20.095 +day and night they toil, +filling boxes with decrepit earth + +00:36:20.262 --> 00:36:23.515 +from the bowels of the castle. + +00:36:24.683 --> 00:36:29.146 +They are to be delivered to his newly +acquired Carfax Abbey in London. + +00:36:31.231 --> 00:36:35.110 +Why do they +fill these boxes with earth? + +00:36:40.282 --> 00:36:42.868 +I love him! I love him! + +00:36:43.327 --> 00:36:45.746 +Oh, Mina! + +00:36:46.038 --> 00:36:48.916 +It's so wonderful. +I've decided. + +00:36:49.082 --> 00:36:51.543 +I love him +and I've said yes. + +00:36:51.710 --> 00:36:55.130 +So finally. Don't tell me. +The Texan with the big knife? + +00:36:55.297 --> 00:36:58.133 +Oh, no. +To my dear number three. + +00:36:58.300 --> 00:37:02.262 +Lord Arthur Holmwood. +Lord and Lady Holmwood. + +00:37:02.429 --> 00:37:05.140 +You are to be my maid +of honor. Oh, say yes. + +00:37:05.307 --> 00:37:09.561 +Mina, what is it? It's the most +exciting day of my life. + +00:37:11.146 --> 00:37:13.148 +You don't seem to care. + +00:37:13.315 --> 00:37:16.401 +It's just that I'm so terribly +worried about Jonathan. + +00:37:16.568 --> 00:37:18.737 +This letter I received is so-- + +00:37:18.904 --> 00:37:22.324 +It's so cold. It's so unnatural. +It's not like him at all. + +00:37:23.367 --> 00:37:24.660 +Oh, Mina, don't worry. + +00:37:52.145 --> 00:37:54.022 +Captain's log: the Demeter. + +00:37:54.189 --> 00:37:57.401 +Twenty-seventh June, 1897. + +00:37:59.361 --> 00:38:02.364 +We picked up 50 boxes +of experimental earth + +00:38:02.531 --> 00:38:04.783 +bound for London, England. + +00:38:04.950 --> 00:38:07.119 +Set sail at noon into a storm + +00:38:07.286 --> 00:38:09.788 +that seemed +to come out of nowhere, + +00:38:09.955 --> 00:38:12.374 +carrying us out to sea. + +00:38:47.451 --> 00:38:51.079 +Third of July. +Second mate has gone missing. + +00:38:51.246 --> 00:38:55.667 +Nearing Gibraltar. +Storm continues. Crew uneasy. + +00:38:56.585 --> 00:38:59.421 +Believe someone or something + +00:38:59.588 --> 00:39:01.923 +is aboard the ship with us. + +00:39:14.936 --> 00:39:17.147 +Master, I am here! + +00:39:18.106 --> 00:39:21.109 +The master of all life +is at hand! + +00:39:21.276 --> 00:39:23.195 +Gather round! + +00:39:23.362 --> 00:39:25.781 +I am here to do +your bidding, master! + +00:39:25.947 --> 00:39:28.283 +I have worshipped you +long and far off! + +00:39:28.450 --> 00:39:31.912 +And now you are near, +master! + +00:39:32.079 --> 00:39:34.664 +I am your slave! + +00:39:34.831 --> 00:39:37.459 +I await your command! + +00:39:37.626 --> 00:39:40.337 +The case of Renfield +grows more interesting. + +00:39:40.504 --> 00:39:44.299 +Yet, there is method in his madness +with his flies and spiders. + +00:39:44.466 --> 00:39:47.636 +Had I the secret of even +one such brilliant mind, + +00:39:47.803 --> 00:39:51.640 +the key to the fancy +of one lunatic... + +00:39:57.979 --> 00:39:59.022 +Lucy. + +00:39:59.606 --> 00:40:01.149 +Lucy. + +00:40:57.539 --> 00:40:59.916 +Lucy? Lucy! + +00:41:00.876 --> 00:41:02.002 +Lucy! + +00:41:08.675 --> 00:41:10.302 +Lucy. + +00:41:43.543 --> 00:41:44.836 +Lucy! + +00:42:01.061 --> 00:42:02.229 +Lucy! + +00:42:39.891 --> 00:42:43.979 +No. Do not see me. + +00:42:56.408 --> 00:42:57.826 +Lucy. + +00:42:59.494 --> 00:43:02.581 +Oh! I couldn't control myself. + +00:43:02.747 --> 00:43:06.543 +Hush, Lucy. You're dreaming. +You're walking in your sleep again. + +00:43:06.710 --> 00:43:10.714 +My soul, it seemed +to leave my body. + +00:43:10.880 --> 00:43:15.552 +There was this agonizing feeling, +and I couldn't get back to it. + +00:43:15.719 --> 00:43:17.137 +I'm absolutely shaking. + +00:43:17.304 --> 00:43:19.180 +It's all right, Lucy. +You were dreaming. + +00:43:19.347 --> 00:43:22.559 +I had to. It sort of +pulled me and lured me. + +00:43:22.726 --> 00:43:25.854 +- I had no control. +- It's all right. + +00:43:26.021 --> 00:43:28.940 +- It had red eyes. +- Hush now. + +00:43:29.107 --> 00:43:31.818 +I still have the taste +of his blood in my mouth. + +00:43:45.749 --> 00:43:48.543 +Here we go. +Swing it round here. + +00:43:50.545 --> 00:43:52.005 +Master. + +00:43:53.340 --> 00:43:56.134 +I am here to do your bidding. + +00:43:57.010 --> 00:44:00.263 +Master! I am here! + +00:44:01.765 --> 00:44:04.059 +I have worshipped you. + +00:44:06.936 --> 00:44:09.773 +Contrary to some +beliefs, the vampire, + +00:44:09.939 --> 00:44:13.902 +like any other night creature, +can move about by day, + +00:44:14.069 --> 00:44:18.406 +though it is not his natural time, +and his powers are weak. + +00:44:35.006 --> 00:44:38.134 +See the amazing +cinematograph! + +00:44:38.301 --> 00:44:41.262 +A wonder of modern civilization! + +00:44:41.429 --> 00:44:43.640 +The latest sensation! + +00:44:43.807 --> 00:44:46.851 +The greatest attraction +of the century! + +00:44:47.018 --> 00:44:49.771 +The new wonder of the world! + +00:44:51.731 --> 00:44:54.818 +See the amazing cinematograph! + +00:45:14.129 --> 00:45:16.047 +See me. + +00:45:17.882 --> 00:45:19.134 +See me now. + +00:45:25.849 --> 00:45:29.102 +Escaped wolf from zoo +still at large! + +00:45:29.269 --> 00:45:31.146 +Buy a paper, sir? + +00:45:33.440 --> 00:45:34.983 +Thank you, sir. + +00:45:37.485 --> 00:45:40.989 +Get your Gazette! +Penny a paper! + +00:45:54.210 --> 00:45:56.755 +My humblest apologies. + +00:45:57.964 --> 00:46:00.842 +Forgive my ignorance. + +00:46:01.009 --> 00:46:04.012 +I am recently arrived +from abroad + +00:46:04.179 --> 00:46:07.182 +and I do not know your city. + +00:46:07.348 --> 00:46:08.683 +Is a beautiful lady--? + +00:46:08.850 --> 00:46:11.186 +You may purchase a street atlas +for sixpence. Good day. + +00:46:13.897 --> 00:46:16.107 +I have offended you. + +00:46:17.650 --> 00:46:19.903 +I am only looking for +the cinematograph. + +00:46:20.069 --> 00:46:23.531 +I understand it is a wonder +of the civilized world. + +00:46:23.698 --> 00:46:27.410 +If you seek culture, +then visit a museum. + +00:46:27.577 --> 00:46:30.497 +London is filled with them. +Excuse me. + +00:46:39.839 --> 00:46:42.467 +A woman so lovely +and intelligent + +00:46:42.634 --> 00:46:46.179 +should not be walking the streets +of London without her gentleman. + +00:46:46.346 --> 00:46:48.556 +Do I know you, sir? + +00:46:49.808 --> 00:46:52.685 +Are you acquainted +with my husband? + +00:46:52.852 --> 00:46:54.729 +Shall I call the police? + +00:46:56.564 --> 00:46:58.733 +Husband? + +00:46:58.900 --> 00:47:01.319 +I shall bother you +no more. + +00:47:05.073 --> 00:47:06.658 +Sir. + +00:47:07.826 --> 00:47:10.411 +It is I who have been rude. + +00:47:10.578 --> 00:47:13.331 +If You're looking“ Please. + +00:47:15.750 --> 00:47:18.336 +Permit me +to introduce myself. + +00:47:20.213 --> 00:47:24.425 +I am Prince Vlad of Sagite. + +00:47:27.428 --> 00:47:29.430 +A prince, no less? +I am... + +00:47:31.057 --> 00:47:32.976 +your servant. + +00:47:35.270 --> 00:47:37.856 +Wilhelmina Murray. + +00:47:40.817 --> 00:47:43.444 +I am + +00:47:43.611 --> 00:47:45.613 +honored, + +00:47:45.780 --> 00:47:47.699 +Madam Mina. + +00:47:51.661 --> 00:47:53.454 +This way. + +00:48:06.676 --> 00:48:08.553 +Hello, sir. + +00:48:08.720 --> 00:48:11.973 +Mr. Holmwood asked me +to stop by to see Miss Lucy. + +00:48:12.140 --> 00:48:13.600 +Yes, sir. + +00:48:13.766 --> 00:48:16.436 +Dr. Seward, Miss Lucy. +Thank you. + +00:48:16.603 --> 00:48:18.146 +Oh, Jack! + +00:48:18.313 --> 00:48:21.566 +Brilliant Jack. Do you like it? + +00:48:23.359 --> 00:48:25.320 +Did Arthur put you +up to this + +00:48:25.486 --> 00:48:28.865 +or did you want me alone +just once before I'm married? + +00:48:29.949 --> 00:48:32.452 +Lucy, you're +embarrassing me. + +00:48:32.619 --> 00:48:35.330 +I'm here as your doctor. + +00:48:35.496 --> 00:48:37.665 +Your fiancé is very +worried about you, + +00:48:37.832 --> 00:48:42.629 +and I assure you, +a doctor's confidence is sacred. + +00:48:42.795 --> 00:48:44.881 +I must have your +complete trust. + +00:48:49.552 --> 00:48:51.512 +Help me, Jack. + +00:48:52.889 --> 00:48:55.600 +I don't know +what's happening to me. + +00:48:55.767 --> 00:48:57.852 +I'm changing. + +00:48:58.019 --> 00:48:59.896 +I can feel it. + +00:49:01.439 --> 00:49:03.316 +I can hear everything. + +00:49:03.483 --> 00:49:06.486 +I hear the servants at the other +end of the house, whispering. + +00:49:06.653 --> 00:49:09.906 +I hear mice in the attic, +stomping like elephants. + +00:49:11.074 --> 00:49:13.743 +But I'm having horrible +nightmares, Jack. + +00:49:15.870 --> 00:49:17.372 +The eyes. + +00:49:17.538 --> 00:49:18.873 +Oh, Jack. + +00:49:19.040 --> 00:49:22.669 +I'm here, Lucy. +Nothing will harm you. + +00:49:22.835 --> 00:49:25.546 +Ow. Ow. + +00:49:25.713 --> 00:49:27.131 +Let it work. + +00:49:29.133 --> 00:49:31.386 +Thank you. +Lucy. + +00:49:31.552 --> 00:49:33.930 +Oh, Jack, kiss me. + +00:49:39.060 --> 00:49:41.896 +And may I say, Miss +Lucy is hotter than a June bride + +00:49:42.063 --> 00:49:44.399 +riding bareback buck naked +in middle of the Sahara. + +00:49:44.565 --> 00:49:46.734 +I would watch my colonial +tongue if I were you. + +00:49:48.319 --> 00:49:52.323 +Hello, Jack. And how's +our lovely patient today? + +00:49:52.490 --> 00:49:56.202 +Well, frankly, Arthur, +I'm confounded. + +00:49:56.369 --> 00:49:58.997 +Oh, Jack, are you +still brooding over Miss Lucy? + +00:49:59.163 --> 00:50:02.667 +I can only conclude +it must be something mental. + +00:50:02.834 --> 00:50:06.254 +How very droll. +Did you hear that, Quince? + +00:50:06.421 --> 00:50:09.966 +Last week he wanted to marry her, and +now he wants to have her committed. + +00:50:11.384 --> 00:50:12.802 +Let's go and have +a look at her. + +00:50:23.563 --> 00:50:26.566 +I'm at a loss, +I admit. + +00:50:26.733 --> 00:50:29.318 +I've taken the liberty of +cabling Abraham Van Helsing, + +00:50:29.485 --> 00:50:31.446 +the metaphysician, +philosopher. + +00:50:31.612 --> 00:50:34.407 +Sounds like a goddamn +witch doctor to me, Jack. + +00:50:34.574 --> 00:50:38.369 +Van Helsing knows more about obscure +diseases than any man in the world. + +00:50:38.536 --> 00:50:40.705 +He's my teacher +and mentor. + +00:50:43.624 --> 00:50:47.128 +Do it, man. +Bring him here. + +00:50:47.295 --> 00:50:49.255 +Spare no expense. + +00:51:24.040 --> 00:51:25.708 +Astounding. + +00:51:25.875 --> 00:51:28.669 +There are no limits +to science. + +00:51:30.922 --> 00:51:33.174 +How can you call this science? + +00:51:34.550 --> 00:51:37.512 +Do you think Madam Curie +would invite such comparisons? + +00:51:37.678 --> 00:51:39.347 +Really. + +00:51:42.266 --> 00:51:45.728 +I, ahem-- I shouldn't +have come here. + +00:51:45.895 --> 00:51:47.814 +I must go. + +00:51:53.069 --> 00:51:55.029 +Do not fear me. + +00:52:10.211 --> 00:52:11.796 +Stop this. Stop this. + +00:52:11.963 --> 00:52:13.548 +Stop this. + +00:52:23.891 --> 00:52:26.477 +My God. Who are you? + +00:52:26.644 --> 00:52:28.312 +I know you. + +00:52:28.479 --> 00:52:33.025 +I have crossed +oceans of time + +00:52:33.192 --> 00:52:35.069 +to find you. + +00:53:14.150 --> 00:53:16.194 +There is no need to panic. + +00:53:16.360 --> 00:53:20.031 +The animal handlers have +everything under complete control. + +00:53:40.092 --> 00:53:42.136 +Come here, Mina. + +00:54:01.364 --> 00:54:02.990 +He likes you. + +00:54:29.183 --> 00:54:32.478 +There is much to be +learned from beasts. + +00:55:45.634 --> 00:55:47.803 +The tropical +pampas vampire bat must + +00:55:47.970 --> 00:55:51.766 +consume 10 times its own weight +in fresh blood each day + +00:55:52.808 --> 00:55:55.394 +or its own blood cells +will die. + +00:56:04.528 --> 00:56:06.113 +Cute little vermin, ja? + +00:56:07.615 --> 00:56:10.159 +Blood and the diseases +of the blood, + +00:56:10.326 --> 00:56:13.120 +such as syphilis, +they concern us here. + +00:56:14.205 --> 00:56:16.457 +The very name +"venereal diseases," + +00:56:16.624 --> 00:56:20.294 +the diseases of Venus, +imputes to them divine origin. + +00:56:20.461 --> 00:56:23.839 +And they are involved +in that sex problem about which + +00:56:24.006 --> 00:56:28.052 +the ethics and ideals of Christian +civilization are concerned. + +00:56:28.219 --> 00:56:33.224 +In fact, civilization and syphilisation +have advanced together. + +00:56:36.268 --> 00:56:37.311 +What is this? + +00:56:37.478 --> 00:56:39.105 +It's from the telegraph, +professor. + +00:56:39.271 --> 00:56:41.148 +Telegraph? + +00:56:43.067 --> 00:56:47.488 +Mm. Thank you. Gentlemen, +thank you. That will be all. + +00:56:58.416 --> 00:57:00.501 +Dawn. + +00:57:00.668 --> 00:57:03.504 +These may be the last words +I write in this journal. + +00:57:03.671 --> 00:57:06.298 +Dracula has left me +with these women, + +00:57:06.465 --> 00:57:08.509 +these devils of the pit. + +00:57:08.676 --> 00:57:10.845 +They drain my blood +to keep me weak, + +00:57:11.011 --> 00:57:13.681 +barely alive so I cannot escape. + +00:57:13.848 --> 00:57:17.184 +I will try one last time today +to escape to the water. + +00:57:17.351 --> 00:57:20.187 +There must be passageway +to the river, + +00:57:20.354 --> 00:57:22.773 +and then away +from this cursed land + +00:57:22.940 --> 00:57:26.110 +where the devil and his children +still walk with earthly feet. + +00:57:36.370 --> 00:57:38.497 +For the record, I do attest + +00:57:38.664 --> 00:57:41.876 +that at this point, +I, Abraham Van Helsing, + +00:57:42.042 --> 00:57:45.921 +became personally involved +in these strange events. + +00:58:39.934 --> 00:58:42.937 +Professor Van Helsing, +how good of you to come. + +00:58:47.525 --> 00:58:50.903 +I always come to my friends +in need when they call me. + +00:58:51.070 --> 00:58:53.447 +So, Jack, tell me +everything about yourcase. + +00:58:53.614 --> 00:58:56.492 +She has all the usual +physical anemic signs. + +00:58:56.659 --> 00:58:59.787 +Her blood analyses normal, +and yet it is not. + +00:58:59.954 --> 00:59:03.499 +She manifests continued blood loss. +I cannot trace the cause. + +00:59:03.666 --> 00:59:04.708 +Blood loss? How? + +00:59:14.969 --> 00:59:16.262 +My God, close the doors! + +00:59:27.856 --> 00:59:31.193 +My God, +she's only a child. + +00:59:32.820 --> 00:59:34.280 +Ja. + +00:59:35.614 --> 00:59:37.533 +My God. + +00:59:37.700 --> 00:59:41.704 +There's no time to be lost. There +must be a transfusion atonce. + +00:59:41.870 --> 00:59:44.498 +Take off your coat. Remember +how to tie a tourniquet, don't you? + +00:59:44.665 --> 00:59:47.001 +Or have you forgotten? +You perfected a procedure? + +00:59:47.167 --> 00:59:49.587 +Perfected? No. +I've only experimented. + +00:59:49.753 --> 00:59:51.672 +Landsteiner's method. + +00:59:53.507 --> 00:59:55.676 +Animals, goats, sheeps. + +00:59:57.344 --> 00:59:59.221 +If haemolysis occurs +in the blood-donor serum, + +00:59:59.388 --> 01:00:01.056 +her red blood cells +will explode. + +01:00:01.223 --> 01:00:03.559 +She will die. +Here, take this tube. + +01:00:07.521 --> 01:00:09.648 +What in God's name +is going on up here? + +01:00:09.815 --> 01:00:11.358 +This is Professor +Van Helsing, Art. + +01:00:11.525 --> 01:00:13.027 +What the hell is he doing to Lucy? + +01:00:13.193 --> 01:00:14.236 +He's trying to save her life. + +01:00:14.403 --> 01:00:16.905 +Good God! +You're the fiancé? Please. + +01:00:18.240 --> 01:00:19.825 +Please. + +01:00:20.367 --> 01:00:23.412 +Take off your coat. This young +lady's very ill. She's dying. + +01:00:23.579 --> 01:00:25.581 +She wants blood +and blood she must have. + +01:00:25.748 --> 01:00:27.082 +Take off your coat. + +01:00:27.249 --> 01:00:29.168 +Roll up your sleeve, Art. + +01:00:30.544 --> 01:00:32.838 +Oh, God. +Quickly, quickly, quickly. + +01:00:33.005 --> 01:00:34.548 +Roll it up! + +01:00:34.715 --> 01:00:36.467 +This may hurt a little, Art. + +01:00:36.634 --> 01:00:37.926 +Ow! + +01:00:48.228 --> 01:00:51.732 +Forgive me, sir. My life is hers. I would +give my last drop of blood to save her. + +01:00:51.899 --> 01:00:53.776 +Your last drop? + +01:00:53.942 --> 01:00:55.569 +Thank you. + +01:00:55.736 --> 01:01:00.074 +You are very welcome here. +I don't ask as much as that. Not yet. + +01:01:00.240 --> 01:01:01.659 +Hold her hand. + +01:01:14.254 --> 01:01:18.592 +But, Jack, that poor creature has had +the blood of two men put into her already. + +01:01:18.759 --> 01:01:22.179 +Man alive. Her whole body +couldn't hold that much blood. + +01:01:25.432 --> 01:01:26.517 +What took it out? + +01:01:26.684 --> 01:01:28.602 +That's a good question, Mr. Morris. + +01:01:34.233 --> 01:01:36.110 +Those marks +on her throat, + +01:01:36.276 --> 01:01:38.654 +no disease, +no trituration, + +01:01:38.821 --> 01:01:40.656 +I am sure the blood loss +occurred there. + +01:01:40.823 --> 01:01:42.741 +Oh? Where did +the blood go? + +01:01:44.284 --> 01:01:46.578 +You were once +a careful student, Jack. + +01:01:46.745 --> 01:01:48.580 +Use your brain! +Where did the blood go? + +01:01:48.747 --> 01:01:50.124 +Tell me! + +01:01:51.291 --> 01:01:52.710 +The bedclothes would +be covered in blood. + +01:01:52.876 --> 01:01:56.046 +Exactly. You do not let your +eyes see nor your ears hear + +01:01:56.213 --> 01:01:58.465 +that which you +cannot account for. + +01:01:58.632 --> 01:02:02.094 +Something just went up there, sucked it +out of her and flew away, I suppose? + +01:02:04.179 --> 01:02:05.973 +Ja. Why not? + +01:02:06.140 --> 01:02:10.352 +That's brilliant. +That's absolutely brilliant. + +01:02:10.519 --> 01:02:12.646 +Will one of you learned doctors, +or whatever you are, + +01:02:12.813 --> 01:02:14.773 +kindly tell me what is +going on with my Lucy? + +01:02:16.150 --> 01:02:18.736 +Jack, you are a scientist. + +01:02:18.902 --> 01:02:22.239 +Do you not think there are things in this +universe which you cannot understand + +01:02:22.406 --> 01:02:24.867 +and which are true. +Mesmerism, hypnotism? + +01:02:25.033 --> 01:02:27.119 +You and Charcot +have proved hypnotism. + +01:02:27.286 --> 01:02:28.704 +Materialization, astral bodies. + +01:02:38.505 --> 01:02:40.424 +Professor? + +01:02:42.009 --> 01:02:43.260 +Where the hell did he go? + +01:02:46.430 --> 01:02:48.307 +You see? + +01:02:48.474 --> 01:02:50.851 +I feel like a blundering novice. + +01:02:51.018 --> 01:02:54.521 +Gentlemen, we're not fighting +some disease here. + +01:02:54.688 --> 01:02:56.690 +Those marks on your dear +Miss Lucy's neck were made + +01:02:56.857 --> 01:02:59.026 +by something +unspeakable out there. + +01:02:59.193 --> 01:03:00.360 +Dead, but not dead. + +01:03:00.527 --> 01:03:03.572 +It stalks us for some dread purpose +I do not yet comprehend. + +01:03:03.739 --> 01:03:06.825 +To live, it feeds +on Lucy's precious blood. + +01:03:06.992 --> 01:03:09.369 +It is a beast, a monster. + +01:03:28.138 --> 01:03:31.183 +What is happening +to Lucy and to me? + +01:03:31.350 --> 01:03:34.520 +When I was younger, +my feelings were never troubled. + +01:03:34.686 --> 01:03:36.980 +I wish I were myself again, + +01:03:37.147 --> 01:03:40.776 +the sensible Mina +I always depended on. + +01:03:47.324 --> 01:03:49.368 +Absinthe + +01:03:49.535 --> 01:03:51.995 +is the aphrodisiac of the self. + +01:03:53.831 --> 01:03:56.416 +The green fairy + +01:03:56.583 --> 01:04:01.296 +who lives in the absinthe + +01:04:01.463 --> 01:04:03.382 +wants your soul. + +01:04:06.260 --> 01:04:07.594 +But... + +01:04:08.929 --> 01:04:11.890 +you are safe with me. + +01:04:26.697 --> 01:04:28.949 +Tell me, prince, + +01:04:29.116 --> 01:04:31.201 +tell me of your home. + +01:04:33.787 --> 01:04:35.998 +The most beautiful place + +01:04:36.164 --> 01:04:38.083 +in all creation. + +01:04:38.917 --> 01:04:42.796 +Yes, it must be. + +01:04:46.425 --> 01:04:50.637 +A land beyond +a great, vast forest... + +01:04:53.307 --> 01:04:55.976 +surrounded by +majestic mountains... + +01:04:57.811 --> 01:04:59.730 +lush vineyards... + +01:05:01.732 --> 01:05:06.278 +and flowers of such frailty +and beauty + +01:05:06.445 --> 01:05:08.822 +as to be found nowhere else. + +01:05:18.707 --> 01:05:20.584 +You've described my home + +01:05:20.751 --> 01:05:22.920 +as if you had +seen it firsthand. + +01:05:27.007 --> 01:05:30.093 +It's your voice, +perhaps. + +01:05:30.260 --> 01:05:32.179 +It's so familiar. + +01:05:34.181 --> 01:05:36.099 +It's like-- + +01:05:37.517 --> 01:05:40.270 +It's like a voice in a dream +I cannot place... + +01:05:43.190 --> 01:05:45.776 +and it comforts me. + +01:05:45.943 --> 01:05:48.403 +When I am alone. +When you are alone. + +01:06:10.300 --> 01:06:12.386 +And what +of the princess? + +01:06:19.226 --> 01:06:20.727 +Princess? + +01:06:20.894 --> 01:06:22.813 +There is always +a princess... + +01:06:24.982 --> 01:06:27.401 +with gowns +flowing white. + +01:06:31.613 --> 01:06:34.700 +And her face. + +01:06:34.866 --> 01:06:37.869 +Oh, God, + +01:06:38.036 --> 01:06:39.913 +her face... + +01:06:43.667 --> 01:06:45.252 +is a river. + +01:06:50.716 --> 01:06:52.509 +The princess, + +01:06:53.719 --> 01:06:57.097 +she's a river +filled with tears of sadness + +01:06:58.598 --> 01:07:00.517 +and heartbreak. + +01:07:04.771 --> 01:07:06.732 +There was a princess. + +01:07:10.277 --> 01:07:12.195 +Elisabeta. + +01:07:14.865 --> 01:07:16.742 +She was the most +radiant woman + +01:07:16.908 --> 01:07:18.952 +in all the empires +of the world. + +01:07:26.501 --> 01:07:30.130 +Man's deceit took her +from her ancient prince. + +01:07:32.299 --> 01:07:35.093 +She leapt to her death + +01:07:35.260 --> 01:07:37.637 +into the river +that you spoke of. + +01:07:38.722 --> 01:07:41.641 +In my mother's tongue + +01:07:43.143 --> 01:07:45.062 +it is called... + +01:07:46.313 --> 01:07:48.398 +argesh. + +01:07:50.650 --> 01:07:52.402 +River princess. + +01:09:28.748 --> 01:09:30.125 +Dear madam. + +01:09:30.292 --> 01:09:33.336 +Your fiance' is safe +and in the care... + +01:09:33.503 --> 01:09:35.964 +of the good sisters +of the Blessed Sacrament. + +01:09:37.424 --> 01:09:41.761 +Mr. Harker believes your life +is in extreme danger + +01:09:41.928 --> 01:09:45.265 +and he desires with all urgency +that you join him here + +01:09:45.432 --> 01:09:48.560 +so that you may +immediately be married. + +01:09:48.727 --> 01:09:52.230 +Yours with all blessings, +Sister Agatha. + +01:09:55.483 --> 01:09:57.652 +My sweet prince. + +01:09:57.819 --> 01:10:00.447 +Jonathan must never +know of us. + +01:10:07.954 --> 01:10:09.581 +Lucy? Lucy. + +01:10:09.748 --> 01:10:12.834 +Abraham Van Helsing. +Dr. Van Helsing. + +01:10:13.001 --> 01:10:16.129 +And you're Madam Mina, +dear friend to our Lucy, ja? + +01:10:16.296 --> 01:10:19.466 +How is she, doctor? +She's still very weak. + +01:10:19.633 --> 01:10:21.885 +She tells me of your +beloved Jonathan Harker + +01:10:22.052 --> 01:10:24.137 +and your worry for him. + +01:10:24.304 --> 01:10:26.473 +Well, I, too, worry +for all young lovers. + +01:10:31.144 --> 01:10:33.605 +There are darknesses +in life, my child, + +01:10:33.772 --> 01:10:35.815 +and there are lights. + +01:10:35.982 --> 01:10:38.777 +You are one of the lights, +dear Mina, + +01:10:38.944 --> 01:10:40.987 +the light of all light. + +01:10:46.493 --> 01:10:48.203 +Go now. See your friend. + +01:11:04.678 --> 01:11:06.513 +Mina. + +01:11:09.599 --> 01:11:12.018 +You look different, Mina. + +01:11:12.185 --> 01:11:15.272 +You look positively radiant. + +01:11:15.438 --> 01:11:16.856 +You heard +from Jonathan. + +01:11:17.023 --> 01:11:19.067 +Didn't you? +Yes. + +01:11:19.234 --> 01:11:20.694 +Yes. + +01:11:20.860 --> 01:11:22.862 +He's safe, Lucy. + +01:11:23.029 --> 01:11:25.699 +He's in a convent +in Romania. + +01:11:25.865 --> 01:11:29.286 +He's suffering from +a violent brain fever. + +01:11:29.452 --> 01:11:31.121 +The good sisters +are caring for him. + +01:11:31.288 --> 01:11:35.875 +They wrote to me, +and they say he needs me, + +01:11:36.042 --> 01:11:39.045 +but I won't go. + +01:11:39.212 --> 01:11:41.339 +I'm not going +to leave you. + +01:11:41.506 --> 01:11:43.174 +Mina. + +01:11:43.800 --> 01:11:46.219 +You've got to go to him + +01:11:46.386 --> 01:11:48.888 +and you've got to love him + +01:11:49.055 --> 01:11:51.224 +and marry him +right then and there. + +01:11:52.559 --> 01:11:54.978 +And I want you to +take this, my sister. + +01:11:55.145 --> 01:11:56.354 +No. + +01:11:56.521 --> 01:11:58.398 +It's my wedding gift +to you. + +01:11:58.565 --> 01:12:00.025 +No, Lucy, no. + +01:12:00.525 --> 01:12:02.902 +Don't worry about +spoiled little Lucy. + +01:12:05.280 --> 01:12:07.699 +I'll be all right. + +01:12:08.325 --> 01:12:10.869 +Tell Jonathan oceans of love. + +01:12:25.800 --> 01:12:27.552 +Jack, how is she? +Quincey. + +01:12:46.529 --> 01:12:48.656 +This is why I +cannot breathe! + +01:12:48.823 --> 01:12:51.451 +Lucy.Lucy. +Lucy, it's medicinal. + +01:12:51.618 --> 01:12:53.912 +To help you sleep. +To dream better dreams. + +01:12:54.079 --> 01:12:57.082 +It's garlic! +It's nothing but common garlic! + +01:12:57.248 --> 01:13:00.460 +Lucy, Quincey's here. Quincey's +here to see you. Get some brandy. + +01:13:00.627 --> 01:13:04.297 +Now, Miss Lucy, +you just rest easy. + +01:13:04.464 --> 01:13:06.299 +Arthur sent me +to take care of you. + +01:13:07.425 --> 01:13:08.968 +He said if you don't +get better right quick, + +01:13:09.135 --> 01:13:12.055 +I have to put you out of your +misery like a lame horse. + +01:13:12.222 --> 01:13:14.140 +Quincey. + +01:13:15.058 --> 01:13:17.477 +You're such a beast. + +01:13:20.814 --> 01:13:22.732 +Will you kiss me, +Quincey? + +01:13:25.819 --> 01:13:28.238 +Kiss me. + +01:13:30.448 --> 01:13:31.491 +Kiss me. + +01:13:35.745 --> 01:13:39.666 +- That old coot! +- Get off me! + +01:13:39.833 --> 01:13:43.211 +Lucy, listen to me! +Sleep, sleep now. Sleep. + +01:13:46.339 --> 01:13:48.341 +You're at peace. + +01:13:48.508 --> 01:13:52.303 +Look. There. There. + +01:13:52.637 --> 01:13:54.180 +Ja. + +01:13:55.932 --> 01:13:57.225 +Nosferatu. + +01:14:11.197 --> 01:14:13.741 +"Here occurs the shocking +and frightening history + +01:14:13.908 --> 01:14:17.829 +of the wild, +berserk Prince Dracula. + +01:14:17.996 --> 01:14:20.206 +How he impaled people +and roasted them, + +01:14:20.373 --> 01:14:21.958 +boiled their heads in a kettle, + +01:14:22.125 --> 01:14:24.377 +how he skinned them alive + +01:14:24.544 --> 01:14:28.214 +and hacked them to pieces +and then drank their blood." + +01:14:30.175 --> 01:14:31.759 +Ja. + +01:14:32.552 --> 01:14:34.846 +Dracul. + +01:14:35.013 --> 01:14:37.557 +For blood is the life. + +01:14:52.363 --> 01:14:56.618 +My dearest prince, +forgive me. + +01:14:56.784 --> 01:15:00.330 +I have received word +from my fiance in Romania. + +01:15:00.497 --> 01:15:03.625 +I am en route to join him. +We are to be married. + +01:15:04.709 --> 01:15:07.253 +I will never see you again. + +01:15:07.420 --> 01:15:09.130 +Mina. + +01:15:18.848 --> 01:15:21.100 +It is odd, but I feel almost + +01:15:21.267 --> 01:15:23.895 +that my strange friend +is with me. + +01:15:24.062 --> 01:15:26.898 +He speaks to me in my thoughts. + +01:15:27.065 --> 01:15:30.109 +With him I felt more alive +than ever I had. + +01:15:30.276 --> 01:15:33.112 +And now without him, +soon to be a bride, + +01:15:33.279 --> 01:15:35.990 +I feel confused and lost. + +01:15:36.157 --> 01:15:40.161 +Perhaps, though I try +to be good, I am bad. + +01:15:40.328 --> 01:15:43.289 +Perhaps I am a bad, +inconstant woman. + +01:16:01.474 --> 01:16:03.768 +Winds! + +01:16:04.519 --> 01:16:07.188 +Winds! + +01:16:08.439 --> 01:16:11.651 +Winds! + +01:16:14.696 --> 01:16:16.823 +It is the cause. + +01:16:16.990 --> 01:16:19.659 +It is the cause of my soul! + +01:16:19.826 --> 01:16:21.202 +It is Dracula, + +01:16:21.369 --> 01:16:23.496 +the undead, + +01:16:23.663 --> 01:16:26.416 +the foe I have pursued +all my life. + +01:16:30.670 --> 01:16:32.130 +Dracula! + +01:16:35.341 --> 01:16:37.594 +Jack, hurry! +I have much to tell you. + +01:16:40.346 --> 01:16:42.181 +Guard her well, Mr. Morris. + +01:16:42.348 --> 01:16:44.767 +Do not fail here tonight. + +01:16:44.934 --> 01:16:47.854 +We are dealing with forces +beyond all human experience, + +01:16:48.021 --> 01:16:50.023 +an enormous power, +so guard her well. + +01:16:50.189 --> 01:16:53.818 +Otherwise your precious Lucy +will become a bitch of the devil, + +01:16:53.985 --> 01:16:55.862 +a whore of darkness! + +01:16:57.864 --> 01:16:59.365 +Well, you're a sick old buzzard. + +01:17:00.950 --> 01:17:02.869 +Hear me out, young man. + +01:17:03.036 --> 01:17:05.413 +Lucy is not a random victim +attacked by mere accident. + +01:17:05.580 --> 01:17:07.165 +Do you understand? No. + +01:17:07.332 --> 01:17:11.419 +She is a willing recruit, a breathless +follower, a wanton follower. + +01:17:11.586 --> 01:17:14.088 +I dare say, a devoted disciple. + +01:17:14.255 --> 01:17:16.716 +She is the devil's concubine! + +01:17:18.509 --> 01:17:19.761 +Do you understand me? + +01:17:20.887 --> 01:17:24.641 +Yet, we may still save +her precious soul. + +01:17:24.807 --> 01:17:28.478 +But not on an +empty stomach. + +01:17:28.645 --> 01:17:30.855 +Jack! +Here, sir. + +01:17:31.022 --> 01:17:33.733 +Ah! I starve. Feed me. + +01:17:34.817 --> 01:17:36.361 +You old coot! + +01:19:51.370 --> 01:19:54.540 +Your impotent men +with their foolish spells + +01:19:54.707 --> 01:19:58.836 +cannot protect you +from my power. + +01:20:11.224 --> 01:20:14.727 +I condemn you to living death, + +01:20:14.894 --> 01:20:18.022 +to eternal hunger + +01:20:18.189 --> 01:20:22.443 +for living blood. + +01:21:46.235 --> 01:21:48.321 +Pfft! Jack. + +01:21:48.905 --> 01:21:50.364 +Come here. + +01:21:53.951 --> 01:21:55.369 +Ja. + +01:21:55.995 --> 01:21:59.957 +I know how deeply you loved her. That +is why you must trust me and believe. + +01:22:00.124 --> 01:22:02.251 +Believe? +How can I believe? + +01:22:02.418 --> 01:22:06.130 +I want you to bring me, before +nightfall, a set of post-mortem knives. + +01:22:06.297 --> 01:22:08.299 +An autopsy? Lucy? + +01:22:08.466 --> 01:22:12.011 +No, no, no, not exactly. I just want to +cut off her head and take out her heart. + +01:22:14.180 --> 01:22:15.765 +Jack-- + +01:22:20.019 --> 01:22:22.855 +Diary, 17th September. + +01:22:23.022 --> 01:22:26.651 +Poor Jonathan. Still so ill. + +01:22:26.817 --> 01:22:30.029 +He's cheered by +the familiar streets of London. + +01:22:30.196 --> 01:22:34.367 +For me, now that Lucy is dead, +it is a sad homecoming. + +01:22:35.493 --> 01:22:38.037 +It is as if a part of me +is dead too, + +01:22:38.204 --> 01:22:40.998 +except for the tiny hope +that lives in me + +01:22:41.165 --> 01:22:43.626 +that I will again see my prince. + +01:22:43.793 --> 01:22:45.670 +Is he here? + +01:22:45.836 --> 01:22:47.338 +Now that I am married, + +01:22:47.505 --> 01:22:51.550 +I begin to understand the nature +of my feelings for my strange friend + +01:22:51.717 --> 01:22:54.136 +who is always in my thoughts. + +01:23:05.189 --> 01:23:07.233 +Jonathan, what is it? + +01:23:07.400 --> 01:23:09.276 +It is the man himself. + +01:23:09.443 --> 01:23:11.612 +Look, he's grown young. + +01:23:55.197 --> 01:23:59.660 +Gentlemen, must we desecrate +poor Lucy's grave? + +01:23:59.827 --> 01:24:01.746 +She died +horribly enough. + +01:24:04.457 --> 01:24:07.460 +If Miss Lucy is dead, then +no wrong can be done to her. + +01:24:07.626 --> 01:24:10.171 +But if she's not dead, well... + +01:24:10.337 --> 01:24:12.757 +What are you saying, man? +That she's been buried alive? + +01:24:12.923 --> 01:24:17.928 +No. All I say is she is undead. + +01:24:18.888 --> 01:24:20.222 +Undead. + +01:24:20.389 --> 01:24:22.183 +This is insane. + +01:24:41.410 --> 01:24:43.621 +Gentlemen, shall we? + +01:24:43.788 --> 01:24:46.749 +One, two, three. + +01:25:03.599 --> 01:25:05.518 +Where is she? + +01:25:06.894 --> 01:25:09.063 +Where is she?! + +01:25:09.939 --> 01:25:12.858 +What have you +done with her? + +01:25:13.025 --> 01:25:15.152 +She lives beyond +the grace of God, + +01:25:15.319 --> 01:25:17.488 +a wanderer in the +outer darkness. + +01:25:17.655 --> 01:25:21.534 +She is vampyre, +nosferatu. + +01:25:21.700 --> 01:25:24.662 +These creatures do not die +like the bee after the first sting, + +01:25:24.829 --> 01:25:27.164 +but instead grow strong +and become immortal + +01:25:27.331 --> 01:25:29.416 +once infected +by another nosferatu. + +01:25:35.047 --> 01:25:37.842 +So, my friends, +we fight not one beast, + +01:25:38.008 --> 01:25:41.387 +but legions that go on +age after age after age, + +01:25:41.554 --> 01:25:43.305 +feeding on the blood +of the living. + +01:25:49.395 --> 01:25:52.273 +Quickly, hide. Now. + +01:26:20.092 --> 01:26:21.135 +Lucy! + +01:26:29.268 --> 01:26:32.396 +Come to me, Arthur. + +01:26:32.563 --> 01:26:35.608 +Leave these others +and come to me. + +01:26:37.610 --> 01:26:40.613 +My arms are hungry for you, +my darling. + +01:26:40.779 --> 01:26:44.325 +Kiss me and caress me, + +01:26:44.491 --> 01:26:46.785 +my darling husband, please. + +01:26:46.952 --> 01:26:49.622 +We wave +Christ and His holy blood! + +01:26:49.788 --> 01:26:52.416 +We are strong in the Lord +and the power of his might! + +01:26:52.583 --> 01:26:55.711 +We are strong in the Lord +and the power of his might! + +01:26:56.962 --> 01:26:58.464 +The power of God +is upon us! + +01:26:58.631 --> 01:27:00.633 +We are strong in the Lord +and the power of his might! + +01:27:00.799 --> 01:27:04.470 +We are strong in the Lord +and the power of his might! + +01:27:05.137 --> 01:27:07.139 +We are strong in the Lord +and the power of his might! + +01:27:10.976 --> 01:27:13.562 +I bring you from shadow +into light! + +01:27:14.939 --> 01:27:16.815 +I cast you out, +the prince of darkness, + +01:27:16.982 --> 01:27:18.108 +into hell! + +01:27:21.570 --> 01:27:23.614 +A moment's courage, +and it is done. + +01:27:23.781 --> 01:27:25.658 +Take the stake +in your left hand... + +01:27:27.868 --> 01:27:30.496 +place the point +over the heart. + +01:27:34.416 --> 01:27:36.919 +Then in God's name, strike. +Do it now! + +01:27:52.518 --> 01:27:57.523 +Eat, feast. You'll need your +strength for the dark days ahead. + +01:27:57.856 --> 01:27:59.358 +Mina. + +01:28:00.693 --> 01:28:03.237 +Doctor? +Ja? + +01:28:03.404 --> 01:28:04.989 +How did Lucy die? + +01:28:08.200 --> 01:28:09.285 +Well-- + +01:28:11.161 --> 01:28:12.705 +Was she in great pain? + +01:28:12.871 --> 01:28:15.499 +Ja, she was in great pain. +Then we cut off her head + +01:28:15.666 --> 01:28:18.836 +and drove a stake through her heart and +burned it and then she found peace. + +01:28:19.003 --> 01:28:22.298 +Doctor! Please. + +01:28:25.801 --> 01:28:28.012 +So, Mr. Harker, + +01:28:28.178 --> 01:28:31.056 +I must now ask you, +as your doctor... + +01:28:33.934 --> 01:28:35.686 +a sensitive question. + +01:28:35.853 --> 01:28:38.355 +During your infidelity +with those creatures, + +01:28:38.522 --> 01:28:40.024 +those demonic women, + +01:28:40.190 --> 01:28:43.527 +did you, for one instant, +taste of their blood? + +01:28:44.528 --> 01:28:45.571 +No. + +01:28:49.908 --> 01:28:53.162 +No? +No. + +01:28:55.331 --> 01:28:56.373 +Good! + +01:28:56.540 --> 01:28:59.043 +Then you have not infected +your blood with the terrible + +01:28:59.209 --> 01:29:01.587 +disease that +destroyed poor Lucy. + +01:29:10.137 --> 01:29:12.765 +Doctor, +you must understand. + +01:29:14.433 --> 01:29:16.852 +I doubted everything, + +01:29:17.019 --> 01:29:18.604 +even my mind. + +01:29:18.771 --> 01:29:20.814 +I was impotent with fear. + +01:29:20.981 --> 01:29:23.776 +- I know. +- But, sir, + +01:29:23.942 --> 01:29:27.696 +I know where +the bastard sleeps. + +01:29:27.863 --> 01:29:31.533 +I brought him there, +to Carfax Abbey. + +01:29:34.286 --> 01:29:37.915 +Vampires do exist. + +01:29:38.082 --> 01:29:41.126 +And this one we fight, +this one we face, + +01:29:41.293 --> 01:29:43.796 +has the strength +of 20 or more people, + +01:29:43.962 --> 01:29:45.964 +and you can testify for that, +Mr. Harker. + +01:29:46.131 --> 01:29:49.218 +But he can also control +the meaner things of life, + +01:29:49.385 --> 01:29:51.428 +the bat, the rodent, the wolf. + +01:29:51.595 --> 01:29:55.682 +He can appear as mist, as vapor, +as fog and vanish at will. + +01:29:56.350 --> 01:29:58.352 +Now, all these things +Dracula can do, + +01:29:58.519 --> 01:30:00.145 +but he is not free. + +01:30:00.312 --> 01:30:03.649 +He must rest in the sacred earth of +his homeland to gain his evil power. + +01:30:03.816 --> 01:30:07.653 +It is here that we must find him +and destroy him utterly. Jack. + +01:30:07.820 --> 01:30:10.823 +I almost feel pity for anything +so hunted as this count. + +01:30:10.989 --> 01:30:12.741 +How can you pity +such a creature? + +01:30:14.993 --> 01:30:16.328 +I'll take Mina +to my quarters. + +01:30:16.495 --> 01:30:18.956 +Good. You'll be safer there. + +01:30:21.667 --> 01:30:23.961 +Mr. Morris, your +bullets will not harm him. + +01:30:24.128 --> 01:30:27.464 +He must be beheaded. I suggest +you use your big bowie knife. + +01:30:27.631 --> 01:30:30.342 +Well, I wasn't planning +on getting that close, doc. + +01:30:31.760 --> 01:30:33.345 +Master! + +01:30:35.013 --> 01:30:37.307 +Master! + +01:30:37.850 --> 01:30:39.393 +Master! + +01:30:40.352 --> 01:30:42.729 +Master! + +01:30:44.148 --> 01:30:45.607 +Master! + +01:30:50.112 --> 01:30:52.322 +Dr. Jack! + +01:30:52.489 --> 01:30:55.367 +I've been promised +eternal life! + +01:30:58.036 --> 01:31:00.330 +Dr. Seward, +who is that man? + +01:31:00.497 --> 01:31:03.000 +Mr. Renfield. This is no +place for you, Madam Mina. + +01:31:03.167 --> 01:31:06.295 +Renfield? I must see him. + +01:31:07.463 --> 01:31:10.883 +Mr. Renfield, +behave yourself. + +01:31:13.302 --> 01:31:15.220 +This is Mrs. Harker. + +01:31:16.972 --> 01:31:20.726 +Good evening. +Good evening, Mr. Renfield. + +01:31:20.893 --> 01:31:23.562 +It seems I've been +rather naughty. + +01:31:26.064 --> 01:31:27.941 +I know you. + +01:31:28.108 --> 01:31:30.027 +You're the bride +my master covets. + +01:31:32.571 --> 01:31:35.240 +I have a husband. + +01:31:35.407 --> 01:31:36.992 +I am Mrs. Harker. + +01:31:38.285 --> 01:31:41.121 +My master tells me +about you. + +01:31:42.247 --> 01:31:43.624 +What does he tell you? + +01:31:44.708 --> 01:31:46.210 +That he is coming. + +01:31:48.003 --> 01:31:50.088 +That he is coming for you. + +01:31:51.131 --> 01:31:53.175 +Oh, please. + +01:31:59.264 --> 01:32:01.266 +Don't stay here. + +01:32:01.683 --> 01:32:06.313 +Get away from +these men, please. + +01:32:07.689 --> 01:32:11.610 +And I pray to God I may never +see your sweet face again. + +01:32:15.280 --> 01:32:17.908 +And may the Lord bless +and keep you. + +01:32:29.127 --> 01:32:32.798 +Master! Master! + +01:32:32.965 --> 01:32:35.634 +You promised me eternal life, + +01:32:36.093 --> 01:32:39.137 +but you give it +to the pretty woman! + +01:32:39.304 --> 01:32:41.306 +Dr. Jack! + +01:32:41.473 --> 01:32:43.433 +I'm no lunatic man! + +01:32:43.600 --> 01:32:46.478 +I'm a sane man +fighting for his soul! + +01:32:46.645 --> 01:32:50.524 +My quarters are spare, but I +think you will find them comfortable. + +01:32:50.691 --> 01:32:52.526 +Dr. Jack! + +01:32:52.693 --> 01:32:55.487 +Water and toiletries +at your disposal. + +01:32:57.823 --> 01:33:00.242 +You'll be completely safe here. + +01:34:02.387 --> 01:34:05.891 +Destroy every box. +Sterilize the earth inside. + +01:34:06.058 --> 01:34:07.934 +Leave him no refuge. + +01:34:08.310 --> 01:34:10.562 +Let the exorcism begin. + +01:34:37.339 --> 01:34:39.800 +Renfield. + +01:34:39.966 --> 01:34:43.011 +You have betrayed me. + +01:34:44.137 --> 01:34:45.597 +No. + +01:34:46.973 --> 01:34:48.934 +No, master. + +01:34:50.435 --> 01:34:52.646 +No, I-- + +01:34:53.146 --> 01:34:55.440 +I serve you. + +01:34:55.607 --> 01:34:58.443 +I serve only you. + +01:35:55.876 --> 01:35:59.004 +Oh, yes, my love. + +01:35:59.171 --> 01:36:01.590 +You've found me. + +01:36:04.801 --> 01:36:07.179 +My most precious life. + +01:36:07.345 --> 01:36:10.432 +I have wanted this to happen. + +01:36:10.599 --> 01:36:12.517 +I know that now. + +01:36:14.352 --> 01:36:17.814 +I want to be with you always. + +01:36:17.981 --> 01:36:22.527 +You cannot know +what you are saying. + +01:36:22.694 --> 01:36:24.654 +Yes, + +01:36:24.821 --> 01:36:26.907 +I do know. + +01:36:39.795 --> 01:36:43.840 +I feared I would never feel +your touch again. + +01:36:44.007 --> 01:36:45.884 +I thought you were dead. + +01:36:53.058 --> 01:36:57.145 +There is no life +in this body. + +01:37:01.274 --> 01:37:03.235 +But you live. + +01:37:04.945 --> 01:37:06.905 +You live. + +01:37:08.573 --> 01:37:10.492 +What are you? + +01:37:11.785 --> 01:37:14.913 +I must know. +You must tell me. + +01:37:22.254 --> 01:37:24.172 +lam... + +01:37:25.590 --> 01:37:27.884 +nothing. + +01:37:28.051 --> 01:37:29.427 +Lifeless. + +01:37:31.429 --> 01:37:33.473 +Soulless. +What do you mean? + +01:37:33.640 --> 01:37:36.560 +Hated and feared. + +01:37:37.769 --> 01:37:40.730 +I am dead +to all the world. + +01:37:40.897 --> 01:37:42.774 +Hear me. + +01:37:44.776 --> 01:37:46.820 +I am the monster + +01:37:46.987 --> 01:37:49.072 +that breathing men +would kill. + +01:37:50.448 --> 01:37:53.034 +I am Dracula. + +01:37:59.291 --> 01:38:01.126 +No. + +01:38:08.800 --> 01:38:10.969 +You murdered Lucy! + +01:38:24.149 --> 01:38:26.109 +I love you. + +01:38:27.444 --> 01:38:31.823 +Oh, God, +forgive me, I do. + +01:38:50.425 --> 01:38:53.053 +I want to be +what you are, + +01:38:53.219 --> 01:38:54.554 +see what you see, + +01:38:54.721 --> 01:38:56.640 +love what you love. + +01:38:58.099 --> 01:39:00.101 +Mina... + +01:39:00.268 --> 01:39:02.812 +to walk with me, + +01:39:02.979 --> 01:39:06.191 +you must die +to your breathing life + +01:39:06.358 --> 01:39:09.486 +and be reborn to mine. + +01:39:09.653 --> 01:39:12.864 +You are my love + +01:39:13.031 --> 01:39:15.659 +and my life always. + +01:39:23.625 --> 01:39:27.921 +Then I give you +life eternal... + +01:39:29.714 --> 01:39:31.716 +everlasting love... + +01:39:33.259 --> 01:39:37.055 +The power of the storm + +01:39:37.222 --> 01:39:40.892 +and the beasts of the earth. + +01:39:41.059 --> 01:39:43.228 +Walk with me + +01:39:43.395 --> 01:39:47.065 +to be my loving wife forever. + +01:39:47.232 --> 01:39:50.026 +I will. Yes. Yes. + +01:40:18.763 --> 01:40:24.019 +Mina, drink and join me + +01:40:25.103 --> 01:40:27.564 +in eternal life. + +01:40:40.869 --> 01:40:42.620 +No. + +01:40:42.787 --> 01:40:44.247 +I cannot let this be. + +01:40:45.915 --> 01:40:49.210 +Please, I don't care. +Make me yours. + +01:40:49.377 --> 01:40:53.423 +You will be cursed as I am +to walk in the shadow of death + +01:40:53.590 --> 01:40:55.300 +for all eternity. + +01:40:55.467 --> 01:41:00.221 +I love you too much + +01:41:00.388 --> 01:41:01.806 +to condemn you. + +01:41:01.973 --> 01:41:07.103 +Then take me away +from all this death. + +01:41:53.024 --> 01:41:54.526 +Mina! + +01:42:04.369 --> 01:42:07.664 +You think you can destroy me + +01:42:07.831 --> 01:42:10.166 +with your idols? + +01:42:13.128 --> 01:42:15.755 +Sacred blood of Christ! + +01:42:15.922 --> 01:42:18.842 +I, who served the cross. + +01:42:19.008 --> 01:42:21.344 +I, who commanded nations + +01:42:21.511 --> 01:42:24.514 +hundreds of years +before you were born. + +01:42:24.681 --> 01:42:26.683 +Your armies were defeated. + +01:42:26.850 --> 01:42:30.728 +You tortured and impaled +thousands of people. + +01:42:30.895 --> 01:42:34.065 +I was betrayed. + +01:42:34.232 --> 01:42:37.152 +Look what your God + +01:42:37.318 --> 01:42:40.071 +has done to me. + +01:42:40.238 --> 01:42:43.199 +No, your war with God is over. +You must pay for your crimes. + +01:42:48.663 --> 01:42:49.914 +Christ compels you! + +01:42:50.081 --> 01:42:53.585 +She is now + +01:42:53.751 --> 01:42:57.005 +my bride! + +01:42:57.172 --> 01:42:58.423 +No! + +01:42:58.756 --> 01:42:59.841 +No! + +01:43:01.718 --> 01:43:02.969 +More light! + +01:43:04.762 --> 01:43:08.099 +Light! More light! + +01:43:15.773 --> 01:43:17.025 +Unclean. + +01:43:17.775 --> 01:43:18.902 +Unclean. + +01:43:20.153 --> 01:43:21.279 +- Get them! +- This way! + +01:43:21.446 --> 01:43:22.780 +- Get them! +- They must be found. + +01:43:23.072 --> 01:43:24.115 +Unclean. + +01:43:24.282 --> 01:43:26.618 +We have learned something much. + +01:43:26.784 --> 01:43:30.538 +Dracula fears us. +He fears time. + +01:43:30.705 --> 01:43:33.791 +For, if not, +why does he hurry so? + +01:43:33.958 --> 01:43:36.711 +He is gone. + +01:43:36.878 --> 01:43:39.130 +How do you know? + +01:43:39.297 --> 01:43:42.091 +He speaks to me. + +01:43:43.176 --> 01:43:45.637 +He has a strong +mind connection to you. + +01:43:47.722 --> 01:43:50.642 +His heart was strong enough +to survive the grave. + +01:43:51.935 --> 01:43:55.021 +You admire him. +Ja. + +01:43:55.188 --> 01:43:59.484 +He was, in life, +a most remarkable man, + +01:43:59.651 --> 01:44:02.320 +and his mind +was great and powerful, + +01:44:02.487 --> 01:44:05.448 +but greater is the necessity +to stamp him out + +01:44:05.615 --> 01:44:07.492 +and destroy him utterly. + +01:44:08.660 --> 01:44:10.578 +Doctor? +Ja? + +01:44:13.623 --> 01:44:17.293 +I know that I am +becoming like him. + +01:44:17.460 --> 01:44:20.838 +Your salvation +is his destruction. + +01:44:21.005 --> 01:44:24.717 +That is why +I want to hypnotize you. + +01:44:24.884 --> 01:44:28.846 +I want you to help me find him, +Mina, before it is too late. + +01:44:29.013 --> 01:44:32.517 +Please help me find him. +Please. + +01:44:32.684 --> 01:44:35.061 +Look into this light, + +01:44:35.228 --> 01:44:37.939 +the light of all light, +into this flame. + +01:44:39.023 --> 01:44:40.942 +Your eyes are heavy. + +01:44:42.610 --> 01:44:45.321 +You want to sleep. +Sleep now. + +01:44:47.907 --> 01:44:48.950 +Sleep. + +01:44:49.784 --> 01:44:52.120 +I must go to him. + +01:44:52.287 --> 01:44:54.622 +He calls. + +01:44:54.789 --> 01:44:56.207 +What do you hear? + +01:44:58.543 --> 01:45:00.962 +What do you hear, +child? + +01:45:02.046 --> 01:45:04.674 +What do you hear? + +01:45:04.841 --> 01:45:08.886 +Oh, my prince is calling me. + +01:45:09.053 --> 01:45:13.599 +He is traveling across icy seas +to his beloved home. + +01:45:13.766 --> 01:45:16.894 +There he will grow strong again. + +01:45:17.061 --> 01:45:20.732 +I am coming to him +to partake of his strength. + +01:45:26.529 --> 01:45:27.989 +We left London by train + +01:45:28.156 --> 01:45:31.367 +and crossed the English Channel +that night in stormy seas, + +01:45:31.534 --> 01:45:34.579 +no doubt from the passage +of the count's ship. + +01:45:34.746 --> 01:45:39.125 +He commands the winds, +but we still have the advantage. + +01:45:39.292 --> 01:45:42.920 +By train, we can reach the Romanian +port at Varna in three days. + +01:45:43.087 --> 01:45:45.757 +By ship, it will take him +at least a week. + +01:45:47.258 --> 01:45:50.261 +From Paris, we traveled +through the Alps to Budapest. + +01:45:50.428 --> 01:45:53.014 +The count must sail around +the Rock of Gibraltar, + +01:45:53.181 --> 01:45:54.932 +where we have posted a lookout, + +01:45:55.099 --> 01:45:57.852 +and then on to the +Black Sea port in Varna, + +01:45:58.019 --> 01:46:01.314 +where we will meet his ship +and burn it into the sea. + +01:46:07.403 --> 01:46:10.531 +Home. Home. + +01:46:20.291 --> 01:46:23.002 +The vampire's baptized her +with his own blood, + +01:46:23.169 --> 01:46:25.254 +and her blood is dying, +my friend. + +01:46:25.421 --> 01:46:27.298 +It is no use. + +01:46:37.350 --> 01:46:38.434 +Mina. + +01:46:39.727 --> 01:46:42.980 +I will not let you go +into the unknown alone. + +01:46:43.147 --> 01:46:47.360 +Oh, my poor, +dear Jonathan. + +01:46:47.527 --> 01:46:50.238 +Oh, what have +I done to you? + +01:46:51.948 --> 01:46:55.118 +No, no, I have done this +to both of us. + +01:46:55.284 --> 01:46:57.495 +I can hear him. +He's coming closer. + +01:46:57.662 --> 01:46:59.539 +He's calling me to him. + +01:47:00.415 --> 01:47:03.000 +Mina. Mina. + +01:47:04.335 --> 01:47:06.712 +Stay with me. Please. + +01:47:06.879 --> 01:47:08.798 +I am so cold. + +01:47:21.102 --> 01:47:22.478 +All aboard! + +01:47:22.645 --> 01:47:26.315 +Noon. Holmwood received +a wire from his clerk at Lloyd's. + +01:47:26.482 --> 01:47:29.485 +The count's ship sailed +past us in the night fog, + +01:47:29.652 --> 01:47:31.487 +to the northern port of Galatz. + +01:47:31.654 --> 01:47:34.824 +The black devil +is reading Miner's mind. + +01:47:34.991 --> 01:47:37.493 +How can we +catch him now? + +01:47:45.460 --> 01:47:47.879 +Varna. Galatz. + +01:47:48.045 --> 01:47:49.714 +It's about 200 miles. + +01:47:49.881 --> 01:47:52.049 +I think that with the horses, +we can cut him off, + +01:47:52.216 --> 01:47:54.051 +reach him before +he reaches the castle. + +01:47:54.218 --> 01:47:57.221 +I will dispatch Van Helsing +straight for the Borgo Pass. + +01:47:57.388 --> 01:47:58.890 +If we fail in our task, + +01:47:59.056 --> 01:48:00.933 +you will have to finish him. + +01:48:05.813 --> 01:48:09.066 +From Varna, Mina and +Van Helsing took a carriage, + +01:48:09.233 --> 01:48:11.944 +and we continued +on the train towards Galatz, + +01:48:12.111 --> 01:48:15.907 +where we still hoped to intercept +the count before he reaches land. + +01:48:16.073 --> 01:48:20.828 +I am fearful for Mina. +She is now our decoy. + +01:48:33.257 --> 01:48:35.051 +I know this place. + +01:48:35.218 --> 01:48:37.929 +- The end of the world. +- We must go on. + +01:48:38.095 --> 01:48:39.931 +It is late, child. +We must rest here now. + +01:48:40.097 --> 01:48:42.558 +No, we must go! +Mina! + +01:48:42.725 --> 01:48:44.352 +He needs me. We must go! +Mina! + +01:48:48.856 --> 01:48:50.733 +We are past Bistritza. + +01:48:50.900 --> 01:48:53.569 +Dracula has outsmarted us again. + +01:48:53.736 --> 01:48:57.448 +We learned that his gypsies took +charge of the vampire's box at Galatz + +01:48:57.615 --> 01:49:00.201 +and are now on +the Borgo Pass road. + +01:49:17.134 --> 01:49:20.555 +Here. You must eat. +I am not hungry. + +01:49:24.308 --> 01:49:25.810 +Mina? + +01:50:12.773 --> 01:50:15.776 +You have been so good +to me, professor. + +01:50:25.369 --> 01:50:29.206 +I know that Lucy harbored +secret desires for you. + +01:50:29.373 --> 01:50:31.751 +She told me. + +01:50:31.917 --> 01:50:34.962 +I, too, know +what men desire. + +01:50:51.604 --> 01:50:53.481 +Will you cut off my head + +01:50:53.648 --> 01:50:55.566 +and drive a stake +through my heart, + +01:50:55.733 --> 01:50:59.070 +as you did poor Lucy, +you murdering bastard? + +01:51:03.157 --> 01:51:06.619 +Not while I live. +I am sworn to protect you. + +01:51:21.509 --> 01:51:23.052 +No! + +01:51:23.386 --> 01:51:25.805 +You are safe +within the circle. + +01:51:25.971 --> 01:51:29.475 +I've lost Lucy. +I'll not lose you to him. + +01:51:29.642 --> 01:51:30.976 +You're whores of Satan! + +01:51:35.272 --> 01:51:37.233 +This is holy ground. + +01:51:37.400 --> 01:51:39.235 +Leave this place now! + +01:51:41.237 --> 01:51:43.280 +Leave! + +01:51:43.948 --> 01:51:46.659 +In the name of God, +leave this ground! + +01:51:46.826 --> 01:51:48.703 +I command you +in the name of Christ! + +01:51:53.874 --> 01:51:55.418 +No! + +01:51:56.836 --> 01:51:58.379 +No! + +01:52:00.798 --> 01:52:03.718 +Christ! Damn you! + +01:52:40.838 --> 01:52:42.798 +Dracul! + +01:52:45.050 --> 01:52:46.802 +Dracul! + +01:53:19.335 --> 01:53:21.378 +Mina. + +01:53:21.545 --> 01:53:23.589 +You are + +01:53:23.756 --> 01:53:26.050 +near. + +01:53:26.217 --> 01:53:28.135 +My love. + +01:53:40.231 --> 01:53:41.607 +They're racing +against the sunset. + +01:53:41.774 --> 01:53:43.651 +It may be too late. +God help us. + +01:54:15.933 --> 01:54:16.976 +Mina. + +01:54:25.192 --> 01:54:26.569 +Harker, shoot! + +01:54:35.327 --> 01:54:37.037 +Charge! + +01:55:20.247 --> 01:55:22.124 +Harker! + +01:55:44.521 --> 01:55:45.814 +Harker! + +01:56:34.071 --> 01:56:35.114 +No! + +01:56:41.286 --> 01:56:42.371 +Mina. + +01:57:00.431 --> 01:57:01.473 +Quincey! + +01:57:05.894 --> 01:57:07.479 +No! + +01:57:11.775 --> 01:57:13.444 +No. + +01:57:18.699 --> 01:57:21.326 +When my time comes, +will you do the same to me? + +01:57:24.496 --> 01:57:25.581 +Will you? + +01:57:29.418 --> 01:57:30.461 +No. + +01:57:32.087 --> 01:57:33.505 +- Wait. +- No! Let them go. + +01:57:33.672 --> 01:57:37.509 +Let them go. +Our work is finished here. + +01:57:38.302 --> 01:57:39.928 +Hers has just begun. + +01:57:50.606 --> 01:57:51.648 +Quincey. + +01:57:58.155 --> 01:58:00.199 +Oh, no. + +01:58:04.119 --> 01:58:06.830 +We've all become +God's madmen. + +01:58:09.333 --> 01:58:11.251 +All of us. + +01:58:20.511 --> 01:58:24.306 +Where is my God? + +01:58:24.473 --> 01:58:27.684 +He has forsaken me. + +01:58:33.899 --> 01:58:36.527 +It is finished. + +01:58:36.693 --> 01:58:38.237 +No. + +01:58:38.529 --> 01:58:41.156 +Oh, my love. + +01:58:45.494 --> 01:58:46.829 +My love. + +01:58:55.170 --> 01:58:57.589 +There, in the presence of God, + +01:58:57.756 --> 01:59:00.676 +I understood at last +how my love could release us all + +01:59:00.843 --> 01:59:02.719 +from the powers of darkness. + +01:59:09.059 --> 01:59:11.645 +Our love is stronger than death. + +01:59:19.862 --> 01:59:22.739 +Give me peace. + diff --git a/files/assets/css/awards.css b/files/assets/css/awards.css index 358afc0c5..49dbf9a05 100644 --- a/files/assets/css/awards.css +++ b/files/assets/css/awards.css @@ -1,3 +1,5 @@ +/*generic*/ + #awards-container { position: absolute; overflow: hidden; @@ -14,58 +16,32 @@ animation-timing-function: linear !important; } -.scooter img { - width: min(7vw, 50px) !important; + +/*emoji*/ + +.emoji-award img, .emoji-hz-award img { + width: min(60px, 13vw) !important; } -.emoji-award img { - width: min(10vw, 60px) !important; +.emoji-award:nth-child(even) { + animation-direction: alternate-reverse; } -.train img { - width: min(10vw, 80px) !important; -} - - -.emoji-award:nth-child(even), .emoji-award:nth-child(n+2):nth-child(n+3) img { +.emoji-award:nth-child(2) img, .emoji-award:nth-child(3) img, .emoji-award:nth-child(6) img, .emoji-award:nth-child(7) img, .emoji-award:nth-child(10) img, .emoji-award:nth-child(11) img, .emoji-award:nth-child(14) img, .emoji-award:nth-child(15) img, .emoji-award:nth-child(18) img, .emoji-award:nth-child(19) img { animation-direction: alternate-reverse; } @keyframes emojiX { - 0% { - opacity: 1; - } 100% { - opacity: 1; transform: translateX(98vw); } } @keyframes emojiY { - 0% { - opacity: 1; - } 100% { - opacity: 1; transform: translateY(80vh); } } -.train:nth-child(1), .scooter:nth-child(1) {top:2%} -.train:nth-child(2), .scooter:nth-child(2) {top:27%} -.train:nth-child(3), .scooter:nth-child(3) {top:52%} -.train:nth-child(4), .scooter:nth-child(4) {top:77%} - -.train:nth-child(odd) {animation-direction: reverse;} -.train:nth-child(odd) img {transform: scaleX(-1);} - -@keyframes train { - from {transform: translateX(-10vw)} - to {transform: translateX(110vw)} -} - -.scooter:nth-child(even) {animation-direction: reverse;} -.scooter:nth-child(even) img {transform: scaleX(-1);} - .emoji-award { animation: emojiX 8s alternate; } @@ -73,10 +49,6 @@ animation: emojiY 9s alternate; } -.train, .scooter { - animation: train 12s; -} - @media (max-width: 768px) { .emoji-award { animation: emojiX 6s alternate; @@ -84,9 +56,70 @@ .emoji-award img { animation: emojiY 7s alternate; } - .train, .scooter { - animation: train 6s; +} + +.emoji-hz-award:nth-child(odd) { + animation-direction: reverse; +} +.emoji-hz-award:nth-child(odd) img { + transform: scaleX(-1); +} +.emoji-hz-award:nth-child(1), .emoji-hz-award:nth-child(5), .emoji-hz-award:nth-child(9), .emoji-hz-award:nth-child(13), .emoji-hz-award:nth-child(17) { + top: 2%; +} +.emoji-hz-award:nth-child(2), .emoji-hz-award:nth-child(6), .emoji-hz-award:nth-child(10), .emoji-hz-award:nth-child(14), .emoji-hz-award:nth-child(18) { + top: 27%; +} +.emoji-hz-award:nth-child(3), .emoji-hz-award:nth-child(7), .emoji-hz-award:nth-child(11), .emoji-hz-award:nth-child(15), .emoji-hz-award:nth-child(19) { + top: 52%; +} +.emoji-hz-award:nth-child(4), .emoji-hz-award:nth-child(8), .emoji-hz-award:nth-child(12), .emoji-hz-award:nth-child(16), .emoji-hz-award:nth-child(20) { + top: 77%; +} + + +@keyframes emoji-hz { + 0% { + transform: translateX(-10vw); } + 100% { + transform: translateX(110vw); + } +} + +.emoji-hz-award { + animation: emoji-hz 12s; +} + +@media (max-width: 768px) { + .emoji-hz-award { + animation: emoji-hz 6s; + } +} + +.animation-delay-1 { + animation-delay: 1s !important; +} +.animation-delay-2 { + animation-delay: 2s !important; +} +.animation-delay-3 { + animation-delay: 3s !important; +} +.animation-delay-4 { + animation-delay: 4s !important; +} + +.emoji-award, .emoji-hz-award { + transform: translateX(-10vw); +} + +.emoji-hz-award img.reversed { + transform: scaleX(-1); +} + +.emoji-hz-award:nth-child(odd) img.reversed { + transform: scaleX(1); } /*confetti*/ @@ -222,13 +255,13 @@ animation: 60s linear 0s infinite move-colors; } -.queen:not(a):not(.ectoplasm), h1.queen.post-title a { +.queen:not(a) img, .queen:not(.ectoplasm), h1.queen.post-title a { color: hotpink !important; font-weight: 700 !important; text-transform: lowercase !important; } -.sharpen:not(a), h1.sharpen.post-title a { +.sharpen:not(a):not(.blood), h1.sharpen.post-title a { color: red !important; font-weight: bold !important; font-style: italic !important; @@ -274,44 +307,6 @@ font-weight: 400; } -.animation-delay-1 { - opacity: 0; - animation-delay: 1s; -} -.animation-delay-2 { - opacity: 0; - animation-delay: 2s; -} -.animation-delay-3 { - opacity: 0; - animation-delay: 3s; -} -.animation-delay-4 { - opacity: 0; - animation-delay: 4s; -} -.animation-delay-5 { - opacity: 0; - animation-delay: 5s; -} -.animation-delay-6 { - opacity: 0; - animation-delay: 6s; -} -.animation-delay-7 { - opacity: 0; - animation-delay: 7s; -} -.animation-delay-8 { - opacity: 0; - animation-delay: 8s; -} -.animation-delay-9 { - opacity: 0; - animation-delay: 9s; -} - - @keyframes move-colors { from {background-position: 0px;} to {background-position: 1000px;} diff --git a/files/assets/css/chat.css b/files/assets/css/chat.css index 662bd335e..0beb7650f 100644 --- a/files/assets/css/chat.css +++ b/files/assets/css/chat.css @@ -189,6 +189,6 @@ h1, h2, h3, h4, h5, h6 { } } -#message * { +#message *:not(#typing-indicator *) { vertical-align: middle; } diff --git a/files/assets/css/main.css b/files/assets/css/main.css index 62f732381..93689c864 100644 --- a/files/assets/css/main.css +++ b/files/assets/css/main.css @@ -216,6 +216,7 @@ .fa-tv:before{content:"\f26c"} .fa-heart:before{content:"\f004"} .fa-coin:before{content:"\f85c"} +.fa-scarecrow:before{content:"\f70d"} /* do not remove - fixes hand, talking, marsey-love components from breaking out of the comment box @@ -4161,18 +4162,6 @@ small, .small { min-height: 30px; } -.hole-flair { - padding: 3px 5px 2px 5px; - border-radius: 5px; - color: white; - background-color: var(--primary); - margin-right: 3px; - font-weight: bold; -} -.hole-flair:hover { - color: var(--white); - text-decoration: none; -} .post-meta-domain { /* fixes very long domains overflowing post_listing */ display: inline-block; @@ -5111,10 +5100,10 @@ span.green { padding-left: 0 !important; } } -.comment .comment-collapse-desktop:hover { +.comment .comment-collapse-line:hover { border-left-color: var(--white) !important; } -.comment.collapsed .comment-collapse-desktop:hover { +.comment.collapsed .comment-collapse-line:hover { color: var(--white) !important; } @media (max-width: 768px) { @@ -5178,14 +5167,50 @@ span.green { .text-info { color: var(--primary) !important; } -.patron { - padding: 2px 5px 3px 5px !important; + + +.patron, .pronouns, .post-flair, .hole-flair, .mod { + padding: 1.5px 5px 3px 5px !important; border-radius: 5px !important; color: white !important; } +@media (max-width: 768px) { + .patron, .pronouns, .post-flair, .hole-flair, .mod { + padding: 2px 5px !important; + } +} .patron[style*="background-color:#ffffff"] { color: black !important; } +.pronouns { + font-size: 9px; + margin-left: 0.25rem; + font-weight: 700; + border: 2px solid transparent; +} +.post-flair { + background-color: var(--primary); + font-size: 12px; + line-height: 2; +} +.hole-flair { + background-color: var(--primary); + margin-right: 3px; + font-weight: bold; +} +.hole-flair:hover { + color: var(--white); + text-decoration: none; +} +.mod { + padding: 2px 5px 3px 5px; + border-radius: 5px; + color:white!important; + background: linear-gradient(270deg, red, orange, yellow, green, blue, indigo, violet ); + text-shadow:-1px -1px 0 black,1px -1px 0 black,-1px 1px 0 black,1px 1px 0 black; +} + + .container, .container-fluid { background-color: rgb(var(--background)) !important; } @@ -5258,7 +5283,7 @@ textarea { margin: 1.75rem auto !important; } } -.in-comment-image, .img, img[alt^="![]("], +.img, img[alt^="![]("], .preview img:not(img[src^="/uid/"], img[src^="/pp/"], img[src$="/pic"], img[src$="/i/hand.webp"], img[src$="/i/talking.webp"], img[src*="/e/"]) { max-height: 150px !important; max-width: 100% !important; @@ -5503,6 +5528,10 @@ span > img[src$="/i/love-background.webp"] { animation-timing-function: linear; } +[cide] [cide], [bounce] [bounce] { + animation: none; +} + /* Fix for
    being populated with
  1. in many contexts. */ .post-body li > p:first-child, .comment-text li > p:first-child, @@ -5781,14 +5810,6 @@ html { padding-bottom: 4px; } -.mod { - padding: 2px 5px 3px 5px; - border-radius: 5px; - color:white!important; - background: linear-gradient(270deg, red, orange, yellow, green, blue, indigo, violet ); - text-shadow:-1px -1px 0 black,1px -1px 0 black,-1px 1px 0 black,1px 1px 0 black; -} - .popover { max-width: min(50%, 500px); box-shadow: 0 1rem 3rem rgba(0, 0, 0, .175); @@ -5957,7 +5978,7 @@ li > .sidebar { text-align: center; } } -th, td { +th:not(#formatting-table th), td:not(#formatting-table td) { font-weight: 700; } @@ -6500,22 +6521,6 @@ g { .fa-stack-1x{line-height:inherit} .fa-stack-2x{font-size:2em} -.pronouns { - font-size: 9px; - margin-left: 0.25rem; - font-weight: 700; - padding: 2px 5px 3px 5px; - border-radius: 5px; - color: white; - border: 2px solid transparent; -} - -@media (max-width: 768px) { - .pronouns, .patron, .mod { - padding: 2px 5px !important; - } -} - .post-preview { padding: 14px 14px 0 14px !important; margin-bottom: 0.5rem !important; @@ -7193,12 +7198,12 @@ input::-webkit-inner-spin-button { min-height: 60px; } -#notelabel { +#notelabel, #emoji_behavior_label { font-size: 16px; } @media (max-width: 768px) { - #note, #notelabel { + #note, #notelabel, #emoji_behavior_label { font-size: 14px !important; } } @@ -7220,12 +7225,12 @@ input::-webkit-inner-spin-button { display: inline-block; } -.comment .comment-collapse-desktop { +.comment .comment-collapse-line { padding-right: 20px; cursor: pointer; } @media (max-width: 768px) { - .comment .comment-collapse-desktop { + .comment .comment-collapse-line { padding-right: 10px; } blockquote { @@ -7466,7 +7471,7 @@ bdi { font-size: 16px; } -.comment-collapse-desktop { +.comment-collapse-line { border-left: 2px solid; } @@ -7560,3 +7565,16 @@ ul { display: none !important; } } + +.section-title { + display: flex; + align-items: center; + justify-content: center; + text-transform: uppercase; + opacity: 0.6; +} + +.section-title hr { + flex: 1; + margin-left: 0.5rem; +} diff --git a/files/assets/css/orgy.css b/files/assets/css/orgy.css index c024dc5d6..e6368a26e 100644 --- a/files/assets/css/orgy.css +++ b/files/assets/css/orgy.css @@ -15,7 +15,7 @@ flex-flow: column wrap; } #chat-window { - max-height: 34vh !important; + max-height: 38vh !important; } } diff --git a/files/assets/css/themes/4chan.css b/files/assets/css/themes/4chan.css index 4c749b734..d6d17c235 100644 --- a/files/assets/css/themes/4chan.css +++ b/files/assets/css/themes/4chan.css @@ -100,7 +100,7 @@ blockquote a { color: navy; } -.comment-collapse-desktop { +.comment-collapse-line { border-color: maroon !important; border-width: 1px !important; } diff --git a/files/assets/css/themes/dramblr.css b/files/assets/css/themes/dramblr.css index 351563659..b7592d245 100644 --- a/files/assets/css/themes/dramblr.css +++ b/files/assets/css/themes/dramblr.css @@ -30,7 +30,7 @@ p, blockquote { color: var(--gray-200) } -.comment-collapse-desktop { +.comment-collapse-line { border-color: var(--gray-400) !important } diff --git a/files/assets/events/DKD/js/music.js b/files/assets/events/DKD/js/music.js deleted file mode 100644 index 61d342c24..000000000 --- a/files/assets/events/DKD/js/music.js +++ /dev/null @@ -1,9 +0,0 @@ -const song = document.getElementById('event-song').value; -const audio = new Audio(song); -audio.loop = true; - -audio.play(); -document.addEventListener('click', () => { - if (audio.paused) audio.play(); -}, {once : true}); -prepare_to_pause(audio) diff --git a/files/assets/events/fistmas/css/main_fistmas.css b/files/assets/events/fistmas/css/main_fistmas.css index 24907f8f6..ee6a7da97 100644 --- a/files/assets/events/fistmas/css/main_fistmas.css +++ b/files/assets/events/fistmas/css/main_fistmas.css @@ -9,7 +9,6 @@ } :root { - --primary: #cc4145; --secondary: #c7c7c7; --dark: #c7c7c7; --muted: #131512; @@ -213,57 +212,49 @@ body { background-blend-mode: soft-light; } - .color { - width: 20%; - height: 100%; - float: left - } +.color { + width: 20%; + height: 100%; + float: left +} - .color p { +.color p { position: relative; z-index: 1231231; text-align: center; line-height: 90vh; - } +} - .color:nth-child(1){ +.color:nth-child(1){ background-color: #F5624D; - } +} - .color:nth-child(2){ +.color:nth-child(2){ background-color: #CC231E; - } +} - .color:nth-child(3){ +.color:nth-child(3){ background-color: #34A65F; - } +} - .color:nth-child(4){ +.color:nth-child(4){ background-color: #0F8A5F; - } +} - .color:nth-child(5){ +.color:nth-child(5){ background-color: #235E6F; - } +} - #snow:not([data-nonce]) { +#snow:not([data-nonce]) { height: 100%; color: #FFF; display: block; - } +} /* awards */ /* gingerbread */ -.fall-snowflake { - color: #fff; - font-size: 1em; - font-family: Serif; - text-shadow: 0 0 1px #000; - pointer-events: none; -} - -@keyframes fall-snowflakes-fall { +@keyframes fall-gingerbreads-fall { 0% { top: -20% } @@ -272,7 +263,7 @@ body { } } -@keyframes fall-snowflakes-shake { +@keyframes fall-gingerbreads-shake { 0% { transform: translateX(0px) } @@ -284,116 +275,81 @@ body { } } -.fall-snowflake { +.fall-gingerbread { + color: #fff; + font-size: 1em; + font-family: Serif; + text-shadow: 0 0 1px #000; + pointer-events: none; position: fixed; top: -20%; z-index: 9999; -webkit-user-select: none; user-select: none; cursor: default; - animation-name: fall-snowflakes-fall, fall-snowflakes-shake; + animation-name: fall-gingerbreads-fall, fall-gingerbreads-shake; animation-duration: 10s, 4s; animation-timing-function: linear, ease-in-out; animation-iteration-count: infinite, infinite; animation-play-state: running, running } -.fall-snowflake:nth-of-type(0) { - left: 1%; - animation-delay: 0s, 0s +.fall-gingerbread img { + width: min(60px, 13vw) !important; } -.fall-snowflake:nth-of-type(1) { + +.fall-gingerbread:nth-of-type(1) { left: 10%; animation-delay: 1s, 1s } -.fall-snowflake:nth-of-type(2) { +.fall-gingerbread:nth-of-type(2) { left: 20%; animation-delay: 6s, .5s } -.fall-snowflake:nth-of-type(3) { +.fall-gingerbread:nth-of-type(3) { left: 30%; animation-delay: 4s, 2s } -.fall-snowflake:nth-of-type(4) { +.fall-gingerbread:nth-of-type(4) { left: 40%; animation-delay: 2s, 2s } -.fall-snowflake:nth-of-type(5) { +.fall-gingerbread:nth-of-type(5) { left: 50%; animation-delay: 8s, 3s } -.fall-snowflake:nth-of-type(6) { - left: 60%; - animation-delay: 6s, 2s -} -.fall-snowflake:nth-of-type(7) { - left: 70%; - animation-delay: 2.5s, 1s -} -.fall-snowflake:nth-of-type(8) { - left: 80%; - animation-delay: 1s, 0s -} -.fall-snowflake:nth-of-type(9) { - left: 90%; - animation delay: 3s, 1.5s -} -.fall-snowflake:nth-of-type(10) { - left: 100%; - animation-delay: 3s, 2s -} -.fall-snowflake:nth-of-type(11) { +.fall-gingerbread:nth-of-type(6) { left: 5%; animation-delay: 1s, 4s } -.fall-snowflake:nth-of-type(12) { +.fall-gingerbread:nth-of-type(7) { left: 15%; animation-delay: 1s, 1.5s } -.fall-snowflake:nth-of-type(13) { +.fall-gingerbread:nth-of-type(8) { left: 25%; animation-delay: 6s, 2.5s } -.fall-snowflake:nth-of-type(14) { +.fall-gingerbread:nth-of-type(9) { left: 35%; animation-delay: 4s, 1s } -.fall-snowflake:nth-of-type(15) { +.fall-gingerbread:nth-of-type(10) { left: 45%; animation-delay: 2s, 4s } -.fall-snowflake:nth-of-type(16) { - left: 55%; - animation-delay: 8s, 3s -} -.fall-snowflake:nth-of-type(17) { - left: 65%; - animation-delay: 6s, 3s -} -.fall-snowflake:nth-of-type(18) { - left: 75%; - animation-delay: 2.5s, 4s -} -.fall-snowflake:nth-of-type(19) { - left: 85%; - animation-delay: 2s, 0s -} -.fall-snowflake:nth-of-type(20) { - left: 95%; - animation delay: 3s, 1.5s -} .animate-spin { - animation: spin 5600ms linear infinite; + animation: spin 5600ms linear infinite; } @keyframes spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } } /* vvv kill yourself vscodelet vvv */ diff --git a/files/assets/events/fistmas/css/themes/dark.css b/files/assets/events/fistmas/css/themes/dark.css index 3803794e6..adfd64aec 100644 --- a/files/assets/events/fistmas/css/themes/dark.css +++ b/files/assets/events/fistmas/css/themes/dark.css @@ -1,5 +1,4 @@ :root { - --primary: #cc4145; --secondary: #101819; --dark: #101819; --muted: #e6faff; @@ -17,10 +16,6 @@ --gray-900: #101819; } -/*#banner-skybox { - fill: url(#skybox-gradient-night); -}*/ - .comment-text, .post-body { - --primary: #15de59; + --primary: #15de59 !important; } diff --git a/files/assets/events/homoween/css/awards_poor.css b/files/assets/events/homoween/css/awards_poor.css deleted file mode 100644 index c7ec9279d..000000000 --- a/files/assets/events/homoween/css/awards_poor.css +++ /dev/null @@ -1,26 +0,0 @@ -.poor { - position: fixed; - background-repeat: no-repeat; - width: 100%; - height: 100%; - pointer-events:none; -} - -#fog-effect-poor { - background-image: url(/assets/events/homoween/images/poor/fog.webp); - background-size: cover; - z-index: 9998; - opacity:0.7; -} - -#stab-effect-poor { - background-image: url(/assets/events/homoween/images/poor/blood.webp); - z-index: 9997; -} - -#flashlight-effect-poor { - background-image: url(/assets/events/homoween/images/poor/flashlight.webp); - z-index: 9995; - background-size: cover; - background-position: center; -} diff --git a/files/assets/events/homoween/css/banner.css b/files/assets/events/homoween/css/banner.css index 950d149b2..f7b3619d5 100644 --- a/files/assets/events/homoween/css/banner.css +++ b/files/assets/events/homoween/css/banner.css @@ -57,95 +57,191 @@ /*days*/ :root { /*sky*/ - --sky-gradient-day1: radial-gradient(at bottom, #d43a27 25%, #761ab3 100%); - --sky-gradient-day2: radial-gradient(at bottom, #bf055c 25%, #6b007d 70%); - --sky-gradient-day3: radial-gradient(at bottom, #bf0583 5%, #560272 60%); - --sky-gradient-day4: radial-gradient(at bottom, #930184 -15%, #490272 60%); - --sky-gradient-day5: radial-gradient(at bottom, #800073 -55%, #400179 60%); - --sky-gradient-day6: radial-gradient(at bottom, #69017a 25%, #390271 70%); - --sky-gradient-day7: radial-gradient(at bottom, #69017a 25%, #2d005b 70%); - --sky-gradient-day8: radial-gradient(at bottom, #af00a6 -20%, #270146 70%); - --sky-gradient-day9: radial-gradient(at bottom, #69047b -10%, #1e0037 70%); - --sky-gradient-day10: radial-gradient(at bottom, #59047b 10%, #150026 70%); + --sky-gradient-day10: radial-gradient(at bottom, #d43a27 25%, #761ab3 100%); + --sky-gradient-day11: radial-gradient(at bottom, #d43a27 25%, #761ab3 100%); + --sky-gradient-day12: radial-gradient(at bottom, #bf055c 25%, #6b007d 70%); + --sky-gradient-day13: radial-gradient(at bottom, #bf055c 25%, #6b007d 70%); + --sky-gradient-day14: radial-gradient(at bottom, #bf0583 5%, #560272 60%); + --sky-gradient-day15: radial-gradient(at bottom, #bf0583 5%, #560272 60%); + --sky-gradient-day16: radial-gradient(at bottom, #930184 -15%, #490272 60%); + --sky-gradient-day17: radial-gradient(at bottom, #930184 -15%, #490272 60%); + --sky-gradient-day18: radial-gradient(at bottom, #800073 -55%, #400179 60%); + --sky-gradient-day19: radial-gradient(at bottom, #800073 -55%, #400179 60%); + --sky-gradient-day20: radial-gradient(at bottom, #69017a 25%, #390271 70%); + --sky-gradient-day21: radial-gradient(at bottom, #69017a 25%, #390271 70%); + --sky-gradient-day22: radial-gradient(at bottom, #69017a 25%, #2d005b 70%); + --sky-gradient-day23: radial-gradient(at bottom, #69017a 25%, #2d005b 70%); + --sky-gradient-day24: radial-gradient(at bottom, #af00a6 -20%, #270146 70%); + --sky-gradient-day25: radial-gradient(at bottom, #af00a6 -20%, #270146 70%); + --sky-gradient-day26: radial-gradient(at bottom, #69047b -10%, #1e0037 70%); + --sky-gradient-day27: radial-gradient(at bottom, #69047b -10%, #1e0037 70%); + --sky-gradient-day28: radial-gradient(at bottom, #59047b 10%, #150026 70%); + --sky-gradient-day29: radial-gradient(at bottom, #59047b 10%, #150026 70%); + --sky-gradient-day30: radial-gradient(at bottom, #350249 10%, #150026 70%); + --sky-gradient-day31: radial-gradient(at bottom, #21002e 10%, #150026 70%); /*moon*/ - --moon-fill-day1:gold; - --moon-fill-day2:gold; - --moon-fill-day3:goldenrod; - --moon-fill-day4:none; - --moon-fill-day5:none; - --moon-fill-day6:#e4e4e4; - --moon-fill-day7:#e4e4e4; - --moon-fill-day8:#e4e4e4; - --moon-fill-day9:#e4e4e4; - --moon-fill-day10:#e4e4e4; + --moon-fill-day10: gold; + --moon-fill-day11: gold; + --moon-fill-day12: gold; + --moon-fill-day13: gold; + --moon-fill-day14: goldenrod; + --moon-fill-day15: goldenrod; + --moon-fill-day16: none; + --moon-fill-day17: none; + --moon-fill-day18: none; + --moon-fill-day19: none; + --moon-fill-day20: #e4e4e4; + --moon-fill-day21: #e4e4e4; + --moon-fill-day22: #e4e4e4; + --moon-fill-day23: #e4e4e4; + --moon-fill-day24: #e4e4e4; + --moon-fill-day25: #e4e4e4; + --moon-fill-day26: #e4e4e4; + --moon-fill-day27: #e4e4e4; + --moon-fill-day28: #e4e4e4; + --moon-fill-day29: #e4e4e4; + --moon-fill-day30: #e4e4e4; + --moon-fill-day31: #e4e4e4; - --moon-shadow-day1:drop-shadow(0px 0px 20px yellow); - --moon-shadow-day2:drop-shadow(0px 0px 20px yellow); - --moon-shadow-day3:drop-shadow(0px 0px 20px gold); - --moon-shadow-day4:none; - --moon-shadow-day5:none; - --moon-shadow-day6:drop-shadow(0px 0px 5px #deddcf); - --moon-shadow-day7:drop-shadow(0px 0px 10px #deddcf); - --moon-shadow-day8:drop-shadow(0px 0px 10px #deddcf); - --moon-shadow-day9:drop-shadow(0px 0px 10px #deddcf); - --moon-shadow-day10:drop-shadow(0px 0px 10px #deddcf); + --moon-shadow-day10: drop-shadow(0px 0px 20px yellow); + --moon-shadow-day11: drop-shadow(0px 0px 20px yellow); + --moon-shadow-day12: drop-shadow(0px 0px 20px yellow); + --moon-shadow-day13: drop-shadow(0px 0px 20px yellow); + --moon-shadow-day14: drop-shadow(0px 0px 20px gold); + --moon-shadow-day15: drop-shadow(0px 0px 20px gold); + --moon-shadow-day16: none; + --moon-shadow-day17: none; + --moon-shadow-day18: none; + --moon-shadow-day19: none; + --moon-shadow-day20: drop-shadow(0px 0px 5px #deddcf); + --moon-shadow-day21: drop-shadow(0px 0px 5px #deddcf); + --moon-shadow-day22: drop-shadow(0px 0px 10px #deddcf); + --moon-shadow-day23: drop-shadow(0px 0px 10px #deddcf); + --moon-shadow-day24: drop-shadow(0px 0px 10px #deddcf); + --moon-shadow-day25: drop-shadow(0px 0px 10px #deddcf); + --moon-shadow-day26: drop-shadow(0px 0px 10px #deddcf); + --moon-shadow-day27: drop-shadow(0px 0px 10px #deddcf); + --moon-shadow-day28: drop-shadow(0px 0px 10px #deddcf); + --moon-shadow-day29: drop-shadow(0px 0px 10px #deddcf); + --moon-shadow-day30: drop-shadow(0px 0px 10px #deddcf); + --moon-shadow-day31: drop-shadow(0px 0px 10px #deddcf); - --moon-position-day1:303px; - --moon-position-day2:308px; - --moon-position-day3:320px; - --moon-position-day4:350px; - --moon-position-day5:350px; - --moon-position-day6:322px; - --moon-position-day7:312px; - --moon-position-day8:308px; - --moon-position-day9:303px; - --moon-position-day10:300px; + --moon-position-day10: 303px; + --moon-position-day11: 303px; + --moon-position-day12: 308px; + --moon-position-day13: 308px; + --moon-position-day14: 320px; + --moon-position-day15: 320px; + --moon-position-day16: 350px; + --moon-position-day17: 350px; + --moon-position-day18: 350px; + --moon-position-day19: 350px; + --moon-position-day20: 322px; + --moon-position-day21: 322px; + --moon-position-day22: 312px; + --moon-position-day23: 312px; + --moon-position-day24: 308px; + --moon-position-day25: 308px; + --moon-position-day26: 303px; + --moon-position-day27: 303px; + --moon-position-day28: 300px; + --moon-position-day29: 300px; + --moon-position-day30: 300px; + --moon-position-day31: 300px; /*ground*/ - --ground-shadow-day1:#5818bd; - --ground-shadow-day2:#5818bd; - --ground-shadow-day3:#5818bd; - --ground-shadow-day4:#5818bd; - --ground-shadow-day5:#5818bd; - --ground-shadow-day6:#5818bd; - --ground-shadow-day7:#4e16a6; - --ground-shadow-day8:#51009a; - --ground-shadow-day9:#4b028c; - --ground-shadow-day10:#41017b; + --ground-shadow-day10: #5818bd; + --ground-shadow-day11: #5818bd; + --ground-shadow-day12: #5818bd; + --ground-shadow-day13: #5818bd; + --ground-shadow-day14: #5818bd; + --ground-shadow-day15: #5818bd; + --ground-shadow-day16: #5818bd; + --ground-shadow-day17: #5818bd; + --ground-shadow-day18: #5818bd; + --ground-shadow-day19: #5818bd; + --ground-shadow-day20: #5818bd; + --ground-shadow-day21: #5818bd; + --ground-shadow-day22: #4e16a6; + --ground-shadow-day23: #4e16a6; + --ground-shadow-day24: #51009a; + --ground-shadow-day25: #51009a; + --ground-shadow-day26: #4b028c; + --ground-shadow-day27: #4b028c; + --ground-shadow-day28: #41017b; + --ground-shadow-day29: #41017b; + --ground-shadow-day30: #41017b; + --ground-shadow-day31: #41017b; - --house-shadow-day1:#5818bd; - --house-shadow-day2:#5818bd; - --house-shadow-day3:#5818bd; - --house-shadow-day4:#5818bd; - --house-shadow-day5:#5818bd; - --house-shadow-day6:#5818bd; - --house-shadow-day7:#5818bd; - --house-shadow-day8:#4a149f; - --house-shadow-day9:#431290; - --house-shadow-day10:#3a1476; + --house-shadow-day10: #5818bd; + --house-shadow-day11: #5818bd; + --house-shadow-day12: #5818bd; + --house-shadow-day13: #5818bd; + --house-shadow-day14: #5818bd; + --house-shadow-day15: #5818bd; + --house-shadow-day16: #5818bd; + --house-shadow-day17: #5818bd; + --house-shadow-day18: #5818bd; + --house-shadow-day19: #5818bd; + --house-shadow-day20: #5818bd; + --house-shadow-day21: #5818bd; + --house-shadow-day22: #5818bd; + --house-shadow-day23: #5818bd; + --house-shadow-day24: #4a149f; + --house-shadow-day25: #4a149f; + --house-shadow-day26: #431290; + --house-shadow-day27: #431290; + --house-shadow-day28: #3a1476; + --house-shadow-day29: #3a1476; + --house-shadow-day30: #3a1476; + --house-shadow-day31: #3a1476; - --object-fill-day1:#240441; - --object-fill-day2:#240441; - --object-fill-day3:#240441; - --object-fill-day4:#240441; - --object-fill-day5:#240441; - --object-fill-day6:#240441; - --object-fill-day7:#240441; - --object-fill-day8:#1e0538; - --object-fill-day9:#18042c; - --object-fill-day10:#18042c; + --object-fill-day10: #240441; + --object-fill-day11: #240441; + --object-fill-day12: #240441; + --object-fill-day13: #240441; + --object-fill-day14: #240441; + --object-fill-day15: #240441; + --object-fill-day16: #240441; + --object-fill-day17: #240441; + --object-fill-day18: #240441; + --object-fill-day19: #240441; + --object-fill-day20: #240441; + --object-fill-day21: #240441; + --object-fill-day22: #240441; + --object-fill-day23: #240441; + --object-fill-day24: #1e0538; + --object-fill-day25: #1e0538; + --object-fill-day26: #18042c; + --object-fill-day27: #18042c; + --object-fill-day28: #18042c; + --object-fill-day29: #18042c; + --object-fill-day30: #18042c; + --object-fill-day31: #18042c; - --star-opacity-day1: 0; - --star-opacity-day2: 0; - --star-opacity-day3: 0; - --star-opacity-day4: 0.2; - --star-opacity-day5: 0.3; - --star-opacity-day6: 0.4; - --star-opacity-day7: 0.5; - --star-opacity-day8: 0.5; - --star-opacity-day9: 0.6; - --star-opacity-day10: 0.7; + --star-opacity-day10: 0; + --star-opacity-day11: 0; + --star-opacity-day12: 0; + --star-opacity-day13: 0; + --star-opacity-day14: 0; + --star-opacity-day15: 0; + --star-opacity-day16: 0.2; + --star-opacity-day17: 0.2; + --star-opacity-day18: 0.3; + --star-opacity-day19: 0.3; + --star-opacity-day20: 0.4; + --star-opacity-day21: 0.4; + --star-opacity-day22: 0.5; + --star-opacity-day23: 0.5; + --star-opacity-day24: 0.5; + --star-opacity-day25: 0.5; + --star-opacity-day26: 0.6; + --star-opacity-day27: 0.6; + --star-opacity-day28: 0.7; + --star-opacity-day29: 0.7; + --star-opacity-day30: 0.7; + --star-opacity-day31: 0.7; } /* stars */ diff --git a/files/assets/events/homoween/css/ectoplasm.css b/files/assets/events/homoween/css/ectoplasm.css index d87586d68..859223a16 100644 --- a/files/assets/events/homoween/css/ectoplasm.css +++ b/files/assets/events/homoween/css/ectoplasm.css @@ -1,4 +1,4 @@ #banner-homoween-title { - text-shadow: 0 0 40px #3AE63A; + text-shadow: 0 0 40px #3AE63A !important; fill: #90ee90; } diff --git a/files/assets/events/homoween/css/flashlight.css b/files/assets/events/homoween/css/flashlight.css index fe85cac3f..409d22a9d 100644 --- a/files/assets/events/homoween/css/flashlight.css +++ b/files/assets/events/homoween/css/flashlight.css @@ -15,7 +15,7 @@ content: ""; display: block; width: 100%; - height: 100%; + height: 100vh; position: absolute; pointer-events: none; background: radial-gradient( diff --git a/files/assets/events/homoween/css/haunted.css b/files/assets/events/homoween/css/haunt.css similarity index 72% rename from files/assets/events/homoween/css/haunted.css rename to files/assets/events/homoween/css/haunt.css index 09c1d490c..ea9181f97 100644 --- a/files/assets/events/homoween/css/haunted.css +++ b/files/assets/events/homoween/css/haunt.css @@ -13,9 +13,3 @@ background-color: var(--background); z-index:0; } -#banner-homoween-title { - opacity: 0; -} -#banner-homoween-text-evil { - opacity: 1 !important; -} diff --git a/files/assets/events/homoween/css/haunted2.css b/files/assets/events/homoween/css/haunt2.css similarity index 100% rename from files/assets/events/homoween/css/haunted2.css rename to files/assets/events/homoween/css/haunt2.css diff --git a/files/assets/events/homoween/css/main_homoween.css b/files/assets/events/homoween/css/main_homoween.css index 097027767..3757079ca 100644 --- a/files/assets/events/homoween/css/main_homoween.css +++ b/files/assets/events/homoween/css/main_homoween.css @@ -32,7 +32,6 @@ /* Homoween Theming */ :root { - --primary: #F66A3C !important; --dark: #140224; --secondary: #820263; --white: #E1E1E1; @@ -49,7 +48,7 @@ --gray-700: var(--dark); --gray-800: var(--dark); --gray-900: var(--dark); - --background: var(--dark); + --background: 20, 2, 36; } body { @@ -184,10 +183,7 @@ body::after { .blood { position: relative; -} - -.blood { - color: #dc3545 !important; + color: red !important; font-family: 'DoubleFeature'; } @@ -228,30 +224,6 @@ body::after { } } -@keyframes haunted-upsidedown { - 0% { - backdrop-filter: brightness(20%) sepia(1) saturate(3) hue-rotate(180deg); - } - 1% { - backdrop-filter: brightness(20%) sepia(1) saturate(3) hue-rotate(180deg); - } - 2% { - backdrop-filter: sepia(1) contrast(1.5) brightness(200%) saturate(3) hue-rotate(180deg); - } - 3% { - backdrop-filter: sepia(1) contrast(1.5) brightness(20%) saturate(3) hue-rotate(180deg); - } - 4% { - backdrop-filter: brightness(300%) sepia(1) saturate(3) hue-rotate(180deg); - } - 7% { - backdrop-filter: brightness(1) sepia(1) saturate(3) hue-rotate(180deg); - } - 100% { - backdrop-filter: brightness(1) sepia(1) saturate(3) hue-rotate(180deg); - } -} - /* Spiders */ .spider:nth-child(odd) { animation-name: swingFast; @@ -260,59 +232,57 @@ body::after { .spider:nth-child(2) { animation-delay: 250ms; animation-duration: 2100ms; - left: 20%; + left: 30%; } .spider:nth-child(3) { animation-delay: 300ms; animation-duration: 1600ms; - left: 30%; + left: 50%; } .spider:nth-child(4) { animation-delay: 400ms; - animation-duration: 1800ms; - left: 40%; -} - -.spider:nth-child(5) { - animation-delay: 240ms; - animation-duration: 1900ms; - left: 50%; -} - -.spider:nth-child(6) { - animation-delay: 250ms; - animation-duration: 2300ms; - left: 60%; -} - -.spider:nth-child(7) { - animation-delay: 400ms; - animation-duration: 2100ms; - left: 70%; -} - -.spider:nth-child(8) { - animation-delay: 4000ms; animation-duration: 200ms; - left: 80%; + left: 70%; } .spider { z-index: 10; - position: fixed; + position: absolute; display: inline-block; top: 0; left: 10%; - animation: swing 2s infinite; transform-origin: top; - transition: 0.8s ease-in-out; pointer-events: none; } + +@media (max-width: 768px) { + .spider { + zoom: 0.5; + } +} + +@media (max-width: 768px) { + @supports (-moz-appearance:none) { + .spider { + left: 5%; + } + .spider:nth-child(2) { + left: 20%; + } + .spider:nth-child(3) { + left: 35%; + } + .spider:nth-child(4) { + left: 50%; + } + } +} + .spider:hover .body { transform: rotate(20deg); transition: 0.4s ease-in-out; @@ -357,19 +327,18 @@ body::after { .spider .body .eye:after { background: #222; - width: 7px; - height: 7px; + width: 16px; + height: 16px; content: ""; display: block; margin: 55%; border-radius: 50%; - animation: look 4s infinite; } -.spider:nth-child(8) .body .eye { - background-color: #FF0000; - background: radial-gradient(#FF9B9B, #FF0000); +.spider:nth-child(4) .body .eye { + background-color: #FF0000; + background: radial-gradient(#FF9B9B, #FF0000); } .spider:nth-child(odd) .body .eye:after { @@ -468,10 +437,10 @@ body::after { #fog-effect { pointer-events: none; - position:fixed; + position: fixed; bottom:0; left: 0; - width:100%; + width: 100%; height: 100%; z-index: 1031; } @@ -530,31 +499,16 @@ body::after { font-weight: initial; } -/* Upsidedown */ -#canvas { - position:absolute; - pointer-events:none; -} - /* Bones */ -#animate{ - margin-left:45%; - margin-top:-5%; - position: fixed; - z-index:999; +#bones-container { + margin-top: -5%; + position: absolute; + z-index: 999; pointer-events: none; - opacity:0.9; + opacity: 0.9; } /* Pumpkin */ -.fall-pumpkin { - color: #fff; - font-size: 1em; - font-family: Serif; - text-shadow: 0 0 1px #000; - pointer-events: none; -} - @keyframes fall-pumpkins-fall { 0% { top: -20% @@ -577,7 +531,12 @@ body::after { } .fall-pumpkin { - position: fixed; + color: #fff; + font-size: 1em; + font-family: Serif; + text-shadow: 0 0 1px #000; + pointer-events: none; + position: absolute; top: -20%; z-index: 999; -webkit-user-select: none; @@ -590,10 +549,10 @@ body::after { animation-play-state: running, running } -.fall-pumpkin:nth-of-type(0) { - left: 1%; - animation-delay: 0s, 0s +.fall-pumpkin img { + width: min(60px, 13vw) !important; } + .fall-pumpkin:nth-of-type(1) { left: 10%; animation-delay: 1s, 1s @@ -615,77 +574,37 @@ body::after { animation-delay: 8s, 3s } .fall-pumpkin:nth-of-type(6) { - left: 60%; - animation-delay: 6s, 2s -} -.fall-pumpkin:nth-of-type(7) { - left: 70%; - animation-delay: 2.5s, 1s -} -.fall-pumpkin:nth-of-type(8) { - left: 80%; - animation-delay: 1s, 0s -} -.fall-pumpkin:nth-of-type(9) { - left: 90%; - animation delay: 3s, 1.5s -} -.fall-pumpkin:nth-of-type(10) { - left: 100%; - animation-delay: 3s, 2s -} -.fall-pumpkin:nth-of-type(11) { left: 5%; animation-delay: 1s, 4s } -.fall-pumpkin:nth-of-type(12) { +.fall-pumpkin:nth-of-type(7) { left: 15%; animation-delay: 1s, 1.5s } -.fall-pumpkin:nth-of-type(13) { +.fall-pumpkin:nth-of-type(8) { left: 25%; animation-delay: 6s, 2.5s } -.fall-pumpkin:nth-of-type(14) { +.fall-pumpkin:nth-of-type(9) { left: 35%; animation-delay: 4s, 1s } -.fall-pumpkin:nth-of-type(15) { +.fall-pumpkin:nth-of-type(10) { left: 45%; animation-delay: 2s, 4s } -.fall-pumpkin:nth-of-type(16) { - left: 55%; - animation-delay: 8s, 3s -} -.fall-pumpkin:nth-of-type(17) { - left: 65%; - animation-delay: 6s, 3s -} -.fall-pumpkin:nth-of-type(18) { - left: 75%; - animation-delay: 2.5s, 4s -} -.fall-pumpkin:nth-of-type(19) { - left: 85%; - animation-delay: 2s, 0s -} -.fall-pumpkin:nth-of-type(20) { - left: 95%; - animation delay: 3s, 1.5s -} .animate-spin { - animation: spin 5600ms linear infinite; + animation: spin 5600ms linear infinite; } @keyframes spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } } /* Trick or Treat */ @@ -714,7 +633,7 @@ body::after { display:inline-block; } -#jump-scare-img { +#jumpscare-img { position: fixed; left: 0; top: 0; @@ -727,9 +646,10 @@ body::after { /* progressbar */ .progress { + position: relative; background-color: #1d9bf0; background-image: linear-gradient(0deg, #1d9bf0 0%, #59b1ec 100%); - width: 270px; + max-width: 95vw; height: 24px; border-radius: 4px; box-shadow: inset 0px 12px 2px #ffffff10; @@ -803,7 +723,31 @@ body::after { background-image: url('/assets/events/homoween/images/cursormarsey.webp?x=6') !important; } -.spider .body .eye::after { - width: 16px; - height: 16px; +.post-flair { + padding-top: 5px !important; +} + +.has_header { + padding-top: 79.54px !important +} + +@media (max-width: 768px) { + .has_header { + padding-top: calc(var(--safe-area-inset-top) + 65.8px) !important + } +} + +#effigy { + position: absolute; + z-index: 1; + pointer-events: none; + width: 120px; + top: 230px; +} + +@media (max-width: 768px) { + #effigy { + width: 80px; + top: 110px; + } } diff --git a/files/assets/events/homoween/css/stab.css b/files/assets/events/homoween/css/stab.css index 4fd5bb276..fabeb37d0 100644 --- a/files/assets/events/homoween/css/stab.css +++ b/files/assets/events/homoween/css/stab.css @@ -1,3 +1,3 @@ canvas.sketch { - opacity: calc(0.1*{{ stab }}); + opacity: 0.2; } diff --git a/files/assets/events/homoween/css/stalker.css b/files/assets/events/homoween/css/stalker.css new file mode 100644 index 000000000..31d4eb885 --- /dev/null +++ b/files/assets/events/homoween/css/stalker.css @@ -0,0 +1,11 @@ +img.cursor-stalker { + position: absolute; + height: 28px; + width: 28px; + top: 0; + left: 0; + background-repeat: no-repeat; + background-size: 100% auto; + z-index: 1000000000; + pointer-events: none; +} diff --git a/files/assets/events/homoween/css/upsidedown.css b/files/assets/events/homoween/css/upsidedown.css index 3257c6e0c..201f3b891 100644 --- a/files/assets/events/homoween/css/upsidedown.css +++ b/files/assets/events/homoween/css/upsidedown.css @@ -4,11 +4,20 @@ body { background-size: cover; background-attachment: fixed; background-color: #000; - filter: sepia(100%) hue-rotate(180deg) saturate(300%); box-shadow: 0 0 900px rgba(0, 0, 0, 0.9) inset; overflow-x: hidden; } +html { + filter: sepia(100%) hue-rotate(180deg) saturate(300%); +} + +#canvas { + z-index: 1; + position: fixed; + pointer-events: none; +} + canvas.particles { pointer-events: none; position: fixed; diff --git a/files/assets/events/homoween/images/effigy.webp b/files/assets/events/homoween/images/effigy.webp new file mode 100644 index 000000000..c9c9c0b7f Binary files /dev/null and b/files/assets/events/homoween/images/effigy.webp differ diff --git a/files/assets/events/homoween/images/sidebar/1.webp b/files/assets/events/homoween/images/sidebar/1.webp index 9066f22a3..4ee97b0a9 100644 Binary files a/files/assets/events/homoween/images/sidebar/1.webp and b/files/assets/events/homoween/images/sidebar/1.webp differ diff --git a/files/assets/events/homoween/images/sidebar/2.webp b/files/assets/events/homoween/images/sidebar/2.webp index d53dac38e..3db86a162 100644 Binary files a/files/assets/events/homoween/images/sidebar/2.webp and b/files/assets/events/homoween/images/sidebar/2.webp differ diff --git a/files/assets/events/homoween/images/sidebar/3.webp b/files/assets/events/homoween/images/sidebar/3.webp index b1f2a52c2..877ef151e 100644 Binary files a/files/assets/events/homoween/images/sidebar/3.webp and b/files/assets/events/homoween/images/sidebar/3.webp differ diff --git a/files/assets/events/homoween/images/sidebar/4.webp b/files/assets/events/homoween/images/sidebar/4.webp index ae7d4d84c..c0e7e02af 100644 Binary files a/files/assets/events/homoween/images/sidebar/4.webp and b/files/assets/events/homoween/images/sidebar/4.webp differ diff --git a/files/assets/events/homoween/images/sidebar/5.webp b/files/assets/events/homoween/images/sidebar/5.webp index bddfcc89c..74b742246 100644 Binary files a/files/assets/events/homoween/images/sidebar/5.webp and b/files/assets/events/homoween/images/sidebar/5.webp differ diff --git a/files/assets/events/homoween/images/sidebar/6.webp b/files/assets/events/homoween/images/sidebar/6.webp index 8613c9707..f2f5f326b 100644 Binary files a/files/assets/events/homoween/images/sidebar/6.webp and b/files/assets/events/homoween/images/sidebar/6.webp differ diff --git a/files/assets/events/homoween/images/sidebar/7.webp b/files/assets/events/homoween/images/sidebar/7.webp new file mode 100644 index 000000000..f3e127a26 Binary files /dev/null and b/files/assets/events/homoween/images/sidebar/7.webp differ diff --git a/files/assets/events/homoween/images/sidebar/8.webp b/files/assets/events/homoween/images/sidebar/8.webp new file mode 100644 index 000000000..8a7ad5762 Binary files /dev/null and b/files/assets/events/homoween/images/sidebar/8.webp differ diff --git a/files/assets/events/homoween/js/banner-debug.js b/files/assets/events/homoween/js/banner-debug.js deleted file mode 100644 index 996a1eb51..000000000 --- a/files/assets/events/homoween/js/banner-debug.js +++ /dev/null @@ -1,26 +0,0 @@ -function setBannerDay(day){ - let sky = document.getElementById("banner-homoween-svg"), - moon = document.getElementById("banner-homoween-moon"), - house = document.getElementById("house-fill-gradient-stop"), - ground = document.getElementById("ground-gradient-stop"), - objects = document.getElementById("banner-homoween-objects"), - stars = document.getElementById("banner-homoween-stars") - - sky.style.backgroundImage = "var(--sky-gradient-day"+day+")" - moon.style.fill = "var(--moon-fill-day"+day+")" - moon.style.filter = "var(--moon-shadow-day"+day+")" - moon.style.cy = "var(--moon-position-day"+day+")" - house.style.stopColor = "var(--house-shadow-day"+day+")" - ground.style.stopColor = "var(--ground-shadow-day"+day+")" - objects.style.fill = "var(--object-fill-day"+day+")" - stars.style.opacity = "var(--star-opacity-day"+day+")" -} - -function cycleBanner(){ - i=1 - asdf = setInterval(function(){ - setBannerDay(i) - if (i > 9){clearInterval(asdf)} - i++ - }, 250) -} diff --git a/files/assets/events/homoween/js/banner.js b/files/assets/events/homoween/js/banner.js index 4f185a354..182a1c56b 100644 --- a/files/assets/events/homoween/js/banner.js +++ b/files/assets/events/homoween/js/banner.js @@ -1,13 +1,9 @@ const el = document.getElementById("banner-homoween-title"); -function animateBannerText() { - const letters = el.getElementsByTagName("tspan"); +const letters = el.getElementsByTagName("tspan"); - for (let i = 0; i < letters.length; i++) { - letters.item(i).style.transition = `all 600ms ${600 + i * 40}ms`; - } - - setTimeout(() => el.classList.add("life"), 1000); +for (let i = 0; i < letters.length; i++) { + letters.item(i).style.transition = `all 600ms ${600 + i * 40}ms`; } -animateBannerText(); +setTimeout(() => el.classList.add("life"), 1000); diff --git a/files/assets/events/homoween/js/blood.js b/files/assets/events/homoween/js/blood.js deleted file mode 100644 index e4cc6cce0..000000000 --- a/files/assets/events/homoween/js/blood.js +++ /dev/null @@ -1,52 +0,0 @@ -/* - A Bloody Mess by Rob Glazebrook - By default, canvas does not clear between frames. I'm taking advantage of that to create the running blood effect. - This pen was inspired by Katy Decorah's BLOOD: https://codepen.io/katydecorah/pen/Lkogi -*/ - - -let i = 0; - -const stabs = document.getElementById('stabs').value - -let blood = Sketch.create({autoclear: false, autopause: false}), - drops = [], - dropCount = stabs*10, - maxDrops = dropCount+1, - Drop = function() { - this.x = random(0,blood.width); - this.radius = random(10,20); - this.y = -this.radius - random(50,100); - this.vy = this.radius/6; - this.r = ~~random(240,255); - this.g = ~~random(0,20); - this.b = ~~random(0,20); - }; - -blood.update = function() { - let d = drops.length; - while(d < dropCount && i < maxDrops) { - let drop = new Drop(); - drops.push(drop); - d++; - i++; - } - while(d-- && i < maxDrops) { - let drop = drops[d]; - drop.y += drop.vy; - if(drop.y - drop.radius > blood.height) { - drops.splice(d,1); - } - } -} - -blood.draw = function() { - let d = drops.length; - while(d-- && i < maxDrops) { - let drop = drops[d]; - blood.beginPath(); - blood.fillStyle = 'rgba('+drop.r+','+drop.g+','+drop.b+',.8)'; - blood.arc(drop.x,drop.y,drop.radius,0,TWO_PI); - blood.fill(); - } -} diff --git a/files/assets/events/homoween/js/bones.js b/files/assets/events/homoween/js/bones.js index ff80290de..11b10fea4 100644 --- a/files/assets/events/homoween/js/bones.js +++ b/files/assets/events/homoween/js/bones.js @@ -1,20 +1,15 @@ -let bones_container = document.getElementById('animate'); -const number = bones_container.dataset.bones - -// Stackable -// With each award, append a new image to array +let bones_container = document.getElementById('bones-container'); const sources = ['skeleton1.webp','skeleton2.webp','skeleton3.webp','skeleton4.webp','skeleton5.webp','skeleton6.webp']; -if(number > sources.length){ - number = sources.length -} +let number = parseInt(bones_container.dataset.bones) +if (screen_width >= 768) + number *= 2 -const n = sources.length - number -const pw = screen.availWidth/6 +const pw = screen_width / 3.5 let circles = []; -for (let i = 0; i < 3; i++) { +for (let i = 0; i < number; i++) { addCircle(i * 150, [10 + 0, pw]); addCircle(i * 150, [10 + 0, -pw]); addCircle(i * 150, [10 - (0.5*pw), -pw]); @@ -60,7 +55,6 @@ function Circle(x, y, v, range) { _this.x += _this.v.x; this.element.style.opacity = 1; this.element.style.transform = 'translate3d(' + _this.x + 'px, ' + _this.y + 'px, 0px)'; - this.element.style.webkitTransform = 'translate3d(' + _this.x + 'px, ' + _this.y + 'px, 0px)'; this.element.style.mozTransform = 'translate3d(' + _this.x + 'px, ' + _this.y + 'px, 0px)'; }; } diff --git a/files/assets/events/homoween/js/haunted.js b/files/assets/events/homoween/js/haunt.js similarity index 61% rename from files/assets/events/homoween/js/haunted.js rename to files/assets/events/homoween/js/haunt.js index 5e6d22cf2..678feacd1 100644 --- a/files/assets/events/homoween/js/haunted.js +++ b/files/assets/events/homoween/js/haunt.js @@ -1,16 +1,17 @@ -const thunder1 = new Audio(`/assets/events/homoween/audio/haunted/thunder1.mp3`) -const thunder2 = new Audio(`/assets/events/homoween/audio/haunted/thunder2.mp3`) -const is_upsidedown = localStorage.getItem('setting_upsidedown') +const thunder1 = document.getElementById("thunder1") +const thunder2 = document.getElementById("thunder2") + const div = document.getElementById("haunted-effect") const stylesheet_haunted = document.createElement("link") stylesheet_haunted.setAttribute("rel", "stylesheet") -stylesheet_haunted.setAttribute("href", "/assets/events/homoween/css/haunted2.css?x=1") +stylesheet_haunted.setAttribute("href", "/assets/events/homoween/css/haunt2.css?x=1") stylesheet_haunted.disabled = true document.head.appendChild(stylesheet_haunted) window.onload = function(){ - thunder2.volume = 0.5 + if (thunder1) + thunder2.volume = 0.5 lightningStrike("normal") } @@ -20,25 +21,23 @@ setInterval(function(){ } else { lightningStrike("normal") } -},14000) +}, 14000) function lightningStrike(strike) { - if(is_upsidedown == 'true'){ - div.style.animation = "haunted-upsidedown 20s" - } else { - div.style.animation = "haunted 20s" - } + div.style.animation = "haunted 20s" if(strike == "haunted"){ stylesheet_haunted.disabled = false - thunder2.play() + if (thunder1) + thunder2.play() setTimeout(function(){ stylesheet_haunted.disabled = true - },700) + }, 700) } - thunder1.play() + if (thunder1) + thunder1.play() setTimeout(function(){ div.style.animation = "none" - },1000) + }, 1000) } diff --git a/files/assets/events/homoween/js/jumpscare.js b/files/assets/events/homoween/js/jumpscare.js index e4e5e795a..e1cfdae9c 100644 --- a/files/assets/events/homoween/js/jumpscare.js +++ b/files/assets/events/homoween/js/jumpscare.js @@ -1,6 +1,6 @@ // Jump scare function function scare() { - const image = document.getElementById("jump-scare-img"); + const image = document.getElementById("jumpscare-img"); image.style.display = "block"; const jumpscare_audio = document.getElementById('jumpscare-audio') diff --git a/files/assets/events/homoween/js/sketch.js b/files/assets/events/homoween/js/stab.js similarity index 92% rename from files/assets/events/homoween/js/sketch.js rename to files/assets/events/homoween/js/stab.js index 14a894d54..ae1b20415 100644 --- a/files/assets/events/homoween/js/sketch.js +++ b/files/assets/events/homoween/js/stab.js @@ -626,3 +626,50 @@ return Sketch; })); + + +let i = 0; + +const stabs = document.getElementById('stabs').value + +let blood = Sketch.create({autoclear: false, autopause: false}), + drops = [], + dropCount = stabs*4, + maxDrops = dropCount+1, + Drop = function() { + this.x = random(0,blood.width); + this.radius = random(7,12); + this.y = -this.radius - random(50,100); + this.vy = this.radius/6; + this.r = ~~random(240,255); + this.g = ~~random(0,20); + this.b = ~~random(0,20); + }; + +blood.update = function() { + let d = drops.length; + while(d < dropCount && i < maxDrops) { + let drop = new Drop(); + drops.push(drop); + d++; + i++; + } + while(d-- && i < maxDrops) { + let drop = drops[d]; + drop.y += drop.vy; + if(drop.y - drop.radius > blood.height) { + drops.splice(d,1); + } + } +} + +blood.draw = function() { + let d = drops.length; + while(d-- && i < maxDrops) { + let drop = drops[d]; + blood.beginPath(); + blood.fillStyle = 'rgba('+drop.r+','+drop.g+','+drop.b+',.8)'; + blood.arc(drop.x,drop.y,drop.radius,0,TWO_PI); + blood.fill(); + } +} diff --git a/files/assets/events/homoween/js/stalker.js b/files/assets/events/homoween/js/stalker.js new file mode 100644 index 000000000..05d73ea00 --- /dev/null +++ b/files/assets/events/homoween/js/stalker.js @@ -0,0 +1,110 @@ +const assets = [ + "marseyjason", + "marseynightmare", + "marseyhellraiser", + "marseysaw", + "marseyzombie2", + "marseywerewolf", + "marseysatangoat", + "marseyskeleton2", + "marseystabby", + "marseyface", + "marseydaemon", + "marseygrimreaper", + "marseycheshire4", + "marseyaugust", + "marseycerebrus", + "marseyzombie", + "marseything", + "marseytwins", + "marseymonstrosity", + "marseykrampus", + "marseybaphomet", + "marseyfacepeel", + "carpwitchtrans", + "capymummy", + "marseynotesbardfinn" +]; + +const stalker_container = document.getElementById("stalkers-container") + +const count = parseInt(stalker_container.dataset.stalkersCount), + size = 25, + spacing = 4 - 0.05 * count, + diameter = 20 + 0.5 * count, + rotation = 0.04 + 0.001 * count, + speed = 0.03 + 0.002 * count, + offset = 10; + +let stalkers = [], + a = Math.round(size * diameter * 0.2), + current = offset, + mouse = { + x: a + offset, + y: a + offset + }; + +// populate stalkers +for (let i = 0; i < count; i++) { + stalkers[i] = new stalker(i); +} + +function stalker(i) { + this.x = 0; + this.y = 0; + this.X = 0; + this.Y = 0; + this.img = document.createElement("img"); + this.img.id = "stalker-" + i; + this.img.className = "cursor-stalker"; + this.img.src = `${SITE_FULL_IMAGES}/e/${assets[i]}.webp`; + stalker_container.appendChild(this.img); +} + +function placestalker(stalker, x, y) { + stalker.x = x; + stalker.y = y; + const left = stalker.x + "px"; + const top = stalker.y + "px"; + stalker.img.style.transform = `translate(${left}, ${top})` +} + +function makeCircle() { + let stalker; + current -= rotation; + for (let i = count - 1; i > -1; --i) { + stalker = stalkers[i]; + const top = Math.round(stalker.y + a * Math.sin((current + i) / spacing) - 15) + "px"; + const left = Math.round(stalker.x + a * Math.cos((current + i) / spacing)) + "px"; + stalker.img.style.transform = `translate(${left}, ${top})` + } +} + +addEventListener("mousemove", function (e) { + mouse.x = e.pageX; + mouse.y = e.pageY; +}); + +function getRandom(min, max) { + return Math.floor(Math.random() * (max - min + 1) + min); +} + +function draw() { + let stalker = stalkers[0]; + let prevstalker = stalkers[0]; + stalker.x = stalker.X += (mouse.x - stalker.X) * speed; + if (screen_width < 768) { + stalker.x = Math.min(stalker.x, screen_width * 0.5); + } + stalker.y = stalker.Y += (mouse.y - stalker.Y) * speed; + for (let i = count - 1; i > 0; --i) { + stalker = stalkers[i]; + prevstalker = stalkers[i - 1]; + stalker.x = stalker.X += (prevstalker.x - stalker.X) * speed; + stalker.y = stalker.Y += (prevstalker.y - stalker.Y) * speed; + } + makeCircle(); + requestAnimationFrame(draw); +} + +draw(); diff --git a/files/assets/events/homoween/js/upsidedown.js b/files/assets/events/homoween/js/upsidedown.js index 65c3e34b9..5b8f1011a 100644 --- a/files/assets/events/homoween/js/upsidedown.js +++ b/files/assets/events/homoween/js/upsidedown.js @@ -1,4 +1,4 @@ -let st = init("canvas"), // stranger things var +let st = init("canvas"), w = (canvas.width = innerWidth), h = (canvas.height = innerHeight); @@ -25,8 +25,13 @@ class firefly { let f = []; +let num_fireflies = 10 +if (screen_width >= 768) { + num_fireflies = 50 +} + function draw() { - if (f.length < 100) { + if (f.length < num_fireflies) { for (let j = 0; j < 10; j++) { f.push(new firefly()); } @@ -51,30 +56,10 @@ function init(elemid) { return st; } -window.requestAnimFrame = function () { - return ( - window.requestAnimationFrame || - window.webkitRequestAnimationFrame || - window.mozRequestAnimationFrame || - window.oRequestAnimationFrame || - window.msRequestAnimationFrame || - function (callback) { - window.setTimeout(callback); - } - ); -}; - function loop() { - window.requestAnimFrame(loop); st.clearRect(0, 0, w, h); draw(); } -addEventListener("resize", function () { - (w = canvas.width = innerWidth), - (h = canvas.height = innerHeight); - loop(); -}); - loop(); setInterval(loop, 1000 / 60); diff --git a/files/assets/events/homoween/music/SpOwOky OwOky Pumpkin Song.mp3 b/files/assets/events/homoween/music/SpOwOky OwOky Pumpkin Song.mp3 new file mode 100644 index 000000000..c535bc42f Binary files /dev/null and b/files/assets/events/homoween/music/SpOwOky OwOky Pumpkin Song.mp3 differ diff --git a/files/assets/events/shared/js/music.js b/files/assets/events/shared/js/music.js index 61d342c24..93bccd1e5 100644 --- a/files/assets/events/shared/js/music.js +++ b/files/assets/events/shared/js/music.js @@ -1,9 +1,13 @@ -const song = document.getElementById('event-song').value; -const audio = new Audio(song); -audio.loop = true; +if (!playing_music()) { + addEventListener("load", () => { + const audio = document.getElementById('event-song'); -audio.play(); -document.addEventListener('click', () => { - if (audio.paused) audio.play(); -}, {once : true}); -prepare_to_pause(audio) + handle_playing_music(audio) + + audio.play(); + document.addEventListener('click', () => { + if (audio.paused) audio.play(); + }, {once : true}); + prepare_to_pause(audio) + }) +} diff --git a/files/assets/images/WPD/badges/304.webp b/files/assets/images/WPD/badges/304.webp new file mode 100644 index 000000000..6309ee9ab Binary files /dev/null and b/files/assets/images/WPD/badges/304.webp differ diff --git a/files/assets/images/WPD/badges/305.webp b/files/assets/images/WPD/badges/305.webp new file mode 100644 index 000000000..5eb0d5368 Binary files /dev/null and b/files/assets/images/WPD/badges/305.webp differ diff --git a/files/assets/images/WPD/badges/306.webp b/files/assets/images/WPD/badges/306.webp new file mode 100644 index 000000000..c318899e3 Binary files /dev/null and b/files/assets/images/WPD/badges/306.webp differ diff --git a/files/assets/images/WPD/badges/307.webp b/files/assets/images/WPD/badges/307.webp new file mode 100644 index 000000000..419349e43 Binary files /dev/null and b/files/assets/images/WPD/badges/307.webp differ diff --git a/files/assets/images/WPD/badges/308.webp b/files/assets/images/WPD/badges/308.webp new file mode 100644 index 000000000..744bd1908 Binary files /dev/null and b/files/assets/images/WPD/badges/308.webp differ diff --git a/files/assets/images/WPD/badges/309.webp b/files/assets/images/WPD/badges/309.webp new file mode 100644 index 000000000..d3bef6616 Binary files /dev/null and b/files/assets/images/WPD/badges/309.webp differ diff --git a/files/assets/images/WPD/badges/310.webp b/files/assets/images/WPD/badges/310.webp new file mode 100644 index 000000000..6faca711a Binary files /dev/null and b/files/assets/images/WPD/badges/310.webp differ diff --git a/files/assets/images/WPD/badges/311.webp b/files/assets/images/WPD/badges/311.webp new file mode 100644 index 000000000..84214a06c Binary files /dev/null and b/files/assets/images/WPD/badges/311.webp differ diff --git a/files/assets/images/WPD/badges/312.webp b/files/assets/images/WPD/badges/312.webp new file mode 100644 index 000000000..04f95700d Binary files /dev/null and b/files/assets/images/WPD/badges/312.webp differ diff --git a/files/assets/images/WPD/sidebar/88.webp b/files/assets/images/WPD/sidebar/88.webp new file mode 100644 index 000000000..fb6eb4c5c Binary files /dev/null and b/files/assets/images/WPD/sidebar/88.webp differ diff --git a/files/assets/images/WPD/sidebar/89.webp b/files/assets/images/WPD/sidebar/89.webp new file mode 100644 index 000000000..96b26f69a Binary files /dev/null and b/files/assets/images/WPD/sidebar/89.webp differ diff --git a/files/assets/images/WPD/sidebar/90.webp b/files/assets/images/WPD/sidebar/90.webp new file mode 100644 index 000000000..c4607d320 Binary files /dev/null and b/files/assets/images/WPD/sidebar/90.webp differ diff --git a/files/assets/images/WPD/sidebar/91.webp b/files/assets/images/WPD/sidebar/91.webp new file mode 100644 index 000000000..d74293683 Binary files /dev/null and b/files/assets/images/WPD/sidebar/91.webp differ diff --git a/files/assets/images/emojis/buckchecker.webp b/files/assets/images/emojis/buckchecker.webp new file mode 100644 index 000000000..20378bf17 Binary files /dev/null and b/files/assets/images/emojis/buckchecker.webp differ diff --git a/files/assets/images/emojis/capyaltaria.webp b/files/assets/images/emojis/capyaltaria.webp new file mode 100644 index 000000000..f4451bf14 Binary files /dev/null and b/files/assets/images/emojis/capyaltaria.webp differ diff --git a/files/assets/images/emojis/capyampharos.webp b/files/assets/images/emojis/capyampharos.webp new file mode 100644 index 000000000..22e0f42d9 Binary files /dev/null and b/files/assets/images/emojis/capyampharos.webp differ diff --git a/files/assets/images/emojis/capyblastoise.webp b/files/assets/images/emojis/capyblastoise.webp new file mode 100644 index 000000000..78afdf3a5 Binary files /dev/null and b/files/assets/images/emojis/capyblastoise.webp differ diff --git a/files/assets/images/emojis/capycascoon.webp b/files/assets/images/emojis/capycascoon.webp new file mode 100644 index 000000000..fe952e93f Binary files /dev/null and b/files/assets/images/emojis/capycascoon.webp differ diff --git a/files/assets/images/emojis/capycyndaquil.webp b/files/assets/images/emojis/capycyndaquil.webp new file mode 100644 index 000000000..6c1fac30d Binary files /dev/null and b/files/assets/images/emojis/capycyndaquil.webp differ diff --git a/files/assets/images/emojis/capydevil.webp b/files/assets/images/emojis/capydevil.webp new file mode 100644 index 000000000..4f18fa42d Binary files /dev/null and b/files/assets/images/emojis/capydevil.webp differ diff --git a/files/assets/images/emojis/capygolem.webp b/files/assets/images/emojis/capygolem.webp new file mode 100644 index 000000000..a20696fbd Binary files /dev/null and b/files/assets/images/emojis/capygolem.webp differ diff --git a/files/assets/images/emojis/capykabuto.webp b/files/assets/images/emojis/capykabuto.webp new file mode 100644 index 000000000..0c7616083 Binary files /dev/null and b/files/assets/images/emojis/capykabuto.webp differ diff --git a/files/assets/images/emojis/capylatios.webp b/files/assets/images/emojis/capylatios.webp new file mode 100644 index 000000000..3464176db Binary files /dev/null and b/files/assets/images/emojis/capylatios.webp differ diff --git a/files/assets/images/emojis/capylugia.webp b/files/assets/images/emojis/capylugia.webp new file mode 100644 index 000000000..ea27e51a2 Binary files /dev/null and b/files/assets/images/emojis/capylugia.webp differ diff --git a/files/assets/images/emojis/capymagnemite.webp b/files/assets/images/emojis/capymagnemite.webp new file mode 100644 index 000000000..be3e95580 Binary files /dev/null and b/files/assets/images/emojis/capymagnemite.webp differ diff --git a/files/assets/images/emojis/capymarowak.webp b/files/assets/images/emojis/capymarowak.webp new file mode 100644 index 000000000..42963b97e Binary files /dev/null and b/files/assets/images/emojis/capymarowak.webp differ diff --git a/files/assets/images/emojis/capynumel.webp b/files/assets/images/emojis/capynumel.webp new file mode 100644 index 000000000..15738c61d Binary files /dev/null and b/files/assets/images/emojis/capynumel.webp differ diff --git a/files/assets/images/emojis/capypawmi.webp b/files/assets/images/emojis/capypawmi.webp new file mode 100644 index 000000000..d9f153494 Binary files /dev/null and b/files/assets/images/emojis/capypawmi.webp differ diff --git a/files/assets/images/emojis/capyquilava.webp b/files/assets/images/emojis/capyquilava.webp new file mode 100644 index 000000000..caee45313 Binary files /dev/null and b/files/assets/images/emojis/capyquilava.webp differ diff --git a/files/assets/images/emojis/capyswinub.webp b/files/assets/images/emojis/capyswinub.webp new file mode 100644 index 000000000..0d40bac61 Binary files /dev/null and b/files/assets/images/emojis/capyswinub.webp differ diff --git a/files/assets/images/emojis/capytepig.webp b/files/assets/images/emojis/capytepig.webp new file mode 100644 index 000000000..4cfddd24f Binary files /dev/null and b/files/assets/images/emojis/capytepig.webp differ diff --git a/files/assets/images/emojis/capytyphlosion.webp b/files/assets/images/emojis/capytyphlosion.webp new file mode 100644 index 000000000..0de154b2a Binary files /dev/null and b/files/assets/images/emojis/capytyphlosion.webp differ diff --git a/files/assets/images/emojis/carpabra.webp b/files/assets/images/emojis/carpabra.webp new file mode 100644 index 000000000..b5d83c22e Binary files /dev/null and b/files/assets/images/emojis/carpabra.webp differ diff --git a/files/assets/images/emojis/carpalakazam.webp b/files/assets/images/emojis/carpalakazam.webp new file mode 100644 index 000000000..465a12be3 Binary files /dev/null and b/files/assets/images/emojis/carpalakazam.webp differ diff --git a/files/assets/images/emojis/carpbeedrill.webp b/files/assets/images/emojis/carpbeedrill.webp new file mode 100644 index 000000000..d2bd0bbef Binary files /dev/null and b/files/assets/images/emojis/carpbeedrill.webp differ diff --git a/files/assets/images/emojis/carpcleffa.webp b/files/assets/images/emojis/carpcleffa.webp new file mode 100644 index 000000000..afce372a2 Binary files /dev/null and b/files/assets/images/emojis/carpcleffa.webp differ diff --git a/files/assets/images/emojis/carpdarumaka.webp b/files/assets/images/emojis/carpdarumaka.webp new file mode 100644 index 000000000..bef881e5b Binary files /dev/null and b/files/assets/images/emojis/carpdarumaka.webp differ diff --git a/files/assets/images/emojis/carpdewgong.webp b/files/assets/images/emojis/carpdewgong.webp new file mode 100644 index 000000000..d6bfc2324 Binary files /dev/null and b/files/assets/images/emojis/carpdewgong.webp differ diff --git a/files/assets/images/emojis/carpdragonite.webp b/files/assets/images/emojis/carpdragonite.webp new file mode 100644 index 000000000..0fda87222 Binary files /dev/null and b/files/assets/images/emojis/carpdragonite.webp differ diff --git a/files/assets/images/emojis/carpelekid.webp b/files/assets/images/emojis/carpelekid.webp new file mode 100644 index 000000000..47602f2c6 Binary files /dev/null and b/files/assets/images/emojis/carpelekid.webp differ diff --git a/files/assets/images/emojis/carpexeggutor.webp b/files/assets/images/emojis/carpexeggutor.webp new file mode 100644 index 000000000..811a2121a Binary files /dev/null and b/files/assets/images/emojis/carpexeggutor.webp differ diff --git a/files/assets/images/emojis/carpfeebas.webp b/files/assets/images/emojis/carpfeebas.webp new file mode 100644 index 000000000..da25c18fc Binary files /dev/null and b/files/assets/images/emojis/carpfeebas.webp differ diff --git a/files/assets/images/emojis/carpflamigo.webp b/files/assets/images/emojis/carpflamigo.webp new file mode 100644 index 000000000..8f91a044b Binary files /dev/null and b/files/assets/images/emojis/carpflamigo.webp differ diff --git a/files/assets/images/emojis/carpgillman.webp b/files/assets/images/emojis/carpgillman.webp new file mode 100644 index 000000000..15b126294 Binary files /dev/null and b/files/assets/images/emojis/carpgillman.webp differ diff --git a/files/assets/images/emojis/carpgoomy.webp b/files/assets/images/emojis/carpgoomy.webp new file mode 100644 index 000000000..f9c3978e7 Binary files /dev/null and b/files/assets/images/emojis/carpgoomy.webp differ diff --git a/files/assets/images/emojis/carpgulpin.webp b/files/assets/images/emojis/carpgulpin.webp new file mode 100644 index 000000000..e702cd847 Binary files /dev/null and b/files/assets/images/emojis/carpgulpin.webp differ diff --git a/files/assets/images/emojis/carphaunter.webp b/files/assets/images/emojis/carphaunter.webp new file mode 100644 index 000000000..487a11349 Binary files /dev/null and b/files/assets/images/emojis/carphaunter.webp differ diff --git a/files/assets/images/emojis/carpidgey.webp b/files/assets/images/emojis/carpidgey.webp new file mode 100644 index 000000000..70cee5abb Binary files /dev/null and b/files/assets/images/emojis/carpidgey.webp differ diff --git a/files/assets/images/emojis/carpinapumpkin.webp b/files/assets/images/emojis/carpinapumpkin.webp new file mode 100644 index 000000000..f1521b015 Binary files /dev/null and b/files/assets/images/emojis/carpinapumpkin.webp differ diff --git a/files/assets/images/emojis/carpjigglypuff.webp b/files/assets/images/emojis/carpjigglypuff.webp new file mode 100644 index 000000000..96da3b5b5 Binary files /dev/null and b/files/assets/images/emojis/carpjigglypuff.webp differ diff --git a/files/assets/images/emojis/carpjirachi.webp b/files/assets/images/emojis/carpjirachi.webp new file mode 100644 index 000000000..42f1320d6 Binary files /dev/null and b/files/assets/images/emojis/carpjirachi.webp differ diff --git a/files/assets/images/emojis/carpjoltik.webp b/files/assets/images/emojis/carpjoltik.webp new file mode 100644 index 000000000..36640ef73 Binary files /dev/null and b/files/assets/images/emojis/carpjoltik.webp differ diff --git a/files/assets/images/emojis/carpjynx.webp b/files/assets/images/emojis/carpjynx.webp new file mode 100644 index 000000000..84aee98cf Binary files /dev/null and b/files/assets/images/emojis/carpjynx.webp differ diff --git a/files/assets/images/emojis/carpkadabra.webp b/files/assets/images/emojis/carpkadabra.webp new file mode 100644 index 000000000..8ec72e799 Binary files /dev/null and b/files/assets/images/emojis/carpkadabra.webp differ diff --git a/files/assets/images/emojis/carpkuna.webp b/files/assets/images/emojis/carpkuna.webp new file mode 100644 index 000000000..93f50a18d Binary files /dev/null and b/files/assets/images/emojis/carpkuna.webp differ diff --git a/files/assets/images/emojis/carpluvdisc.webp b/files/assets/images/emojis/carpluvdisc.webp new file mode 100644 index 000000000..f5b82ef2d Binary files /dev/null and b/files/assets/images/emojis/carpluvdisc.webp differ diff --git a/files/assets/images/emojis/carpmachamp.webp b/files/assets/images/emojis/carpmachamp.webp new file mode 100644 index 000000000..c391aa858 Binary files /dev/null and b/files/assets/images/emojis/carpmachamp.webp differ diff --git a/files/assets/images/emojis/carpmagby.webp b/files/assets/images/emojis/carpmagby.webp new file mode 100644 index 000000000..7ad72c631 Binary files /dev/null and b/files/assets/images/emojis/carpmagby.webp differ diff --git a/files/assets/images/emojis/carpmagmar.webp b/files/assets/images/emojis/carpmagmar.webp new file mode 100644 index 000000000..503cc59eb Binary files /dev/null and b/files/assets/images/emojis/carpmagmar.webp differ diff --git a/files/assets/images/emojis/carpmakuhita.webp b/files/assets/images/emojis/carpmakuhita.webp new file mode 100644 index 000000000..f6bc13bc6 Binary files /dev/null and b/files/assets/images/emojis/carpmakuhita.webp differ diff --git a/files/assets/images/emojis/carpmedal2.webp b/files/assets/images/emojis/carpmedal2.webp new file mode 100644 index 000000000..c218b7ab3 Binary files /dev/null and b/files/assets/images/emojis/carpmedal2.webp differ diff --git a/files/assets/images/emojis/carpminun.webp b/files/assets/images/emojis/carpminun.webp new file mode 100644 index 000000000..8e6615f7c Binary files /dev/null and b/files/assets/images/emojis/carpminun.webp differ diff --git a/files/assets/images/emojis/carpmrmime.webp b/files/assets/images/emojis/carpmrmime.webp new file mode 100644 index 000000000..2ffc9e165 Binary files /dev/null and b/files/assets/images/emojis/carpmrmime.webp differ diff --git a/files/assets/images/emojis/carposhawott.webp b/files/assets/images/emojis/carposhawott.webp new file mode 100644 index 000000000..9df6fbd38 Binary files /dev/null and b/files/assets/images/emojis/carposhawott.webp differ diff --git a/files/assets/images/emojis/carppoliwag.webp b/files/assets/images/emojis/carppoliwag.webp new file mode 100644 index 000000000..4d10df3ca Binary files /dev/null and b/files/assets/images/emojis/carppoliwag.webp differ diff --git a/files/assets/images/emojis/carpqwilfish.webp b/files/assets/images/emojis/carpqwilfish.webp new file mode 100644 index 000000000..d2db1abbf Binary files /dev/null and b/files/assets/images/emojis/carpqwilfish.webp differ diff --git a/files/assets/images/emojis/carpraticate.webp b/files/assets/images/emojis/carpraticate.webp new file mode 100644 index 000000000..c4803f948 Binary files /dev/null and b/files/assets/images/emojis/carpraticate.webp differ diff --git a/files/assets/images/emojis/carpscraggy.webp b/files/assets/images/emojis/carpscraggy.webp new file mode 100644 index 000000000..0dfa9753c Binary files /dev/null and b/files/assets/images/emojis/carpscraggy.webp differ diff --git a/files/assets/images/emojis/carpsilcoon.webp b/files/assets/images/emojis/carpsilcoon.webp new file mode 100644 index 000000000..e458a4bc4 Binary files /dev/null and b/files/assets/images/emojis/carpsilcoon.webp differ diff --git a/files/assets/images/emojis/carpsnivy.webp b/files/assets/images/emojis/carpsnivy.webp new file mode 100644 index 000000000..018c8b127 Binary files /dev/null and b/files/assets/images/emojis/carpsnivy.webp differ diff --git a/files/assets/images/emojis/carpsnorunt.webp b/files/assets/images/emojis/carpsnorunt.webp new file mode 100644 index 000000000..f17aa2a7c Binary files /dev/null and b/files/assets/images/emojis/carpsnorunt.webp differ diff --git a/files/assets/images/emojis/carpsockpuppet.webp b/files/assets/images/emojis/carpsockpuppet.webp new file mode 100644 index 000000000..cdd4c16a1 Binary files /dev/null and b/files/assets/images/emojis/carpsockpuppet.webp differ diff --git a/files/assets/images/emojis/carpsockpuppet2.webp b/files/assets/images/emojis/carpsockpuppet2.webp new file mode 100644 index 000000000..968d40788 Binary files /dev/null and b/files/assets/images/emojis/carpsockpuppet2.webp differ diff --git a/files/assets/images/emojis/carpstunfisk.webp b/files/assets/images/emojis/carpstunfisk.webp new file mode 100644 index 000000000..bfd3f9c3b Binary files /dev/null and b/files/assets/images/emojis/carpstunfisk.webp differ diff --git a/files/assets/images/emojis/carpsurskit.webp b/files/assets/images/emojis/carpsurskit.webp new file mode 100644 index 000000000..2ca90fbb0 Binary files /dev/null and b/files/assets/images/emojis/carpsurskit.webp differ diff --git a/files/assets/images/emojis/carptropius.webp b/files/assets/images/emojis/carptropius.webp new file mode 100644 index 000000000..954ebe908 Binary files /dev/null and b/files/assets/images/emojis/carptropius.webp differ diff --git a/files/assets/images/emojis/carptyranitar.webp b/files/assets/images/emojis/carptyranitar.webp new file mode 100644 index 000000000..80fa90e8c Binary files /dev/null and b/files/assets/images/emojis/carptyranitar.webp differ diff --git a/files/assets/images/emojis/carpvenonat.webp b/files/assets/images/emojis/carpvenonat.webp new file mode 100644 index 000000000..16eb89175 Binary files /dev/null and b/files/assets/images/emojis/carpvenonat.webp differ diff --git a/files/assets/images/emojis/carpvivillon.webp b/files/assets/images/emojis/carpvivillon.webp new file mode 100644 index 000000000..782a35081 Binary files /dev/null and b/files/assets/images/emojis/carpvivillon.webp differ diff --git a/files/assets/images/emojis/carpweepinbell.webp b/files/assets/images/emojis/carpweepinbell.webp new file mode 100644 index 000000000..8c8611341 Binary files /dev/null and b/files/assets/images/emojis/carpweepinbell.webp differ diff --git a/files/assets/images/emojis/carpwigglytuff.webp b/files/assets/images/emojis/carpwigglytuff.webp new file mode 100644 index 000000000..fc7b397cc Binary files /dev/null and b/files/assets/images/emojis/carpwigglytuff.webp differ diff --git a/files/assets/images/emojis/carpwimpod.webp b/files/assets/images/emojis/carpwimpod.webp new file mode 100644 index 000000000..dec5899f6 Binary files /dev/null and b/files/assets/images/emojis/carpwimpod.webp differ diff --git a/files/assets/images/emojis/carpwooper.webp b/files/assets/images/emojis/carpwooper.webp new file mode 100644 index 000000000..f1bad9f15 Binary files /dev/null and b/files/assets/images/emojis/carpwooper.webp differ diff --git a/files/assets/images/emojis/carpwooper2.webp b/files/assets/images/emojis/carpwooper2.webp new file mode 100644 index 000000000..42f865948 Binary files /dev/null and b/files/assets/images/emojis/carpwooper2.webp differ diff --git a/files/assets/images/emojis/carpyamask.webp b/files/assets/images/emojis/carpyamask.webp new file mode 100644 index 000000000..da622b192 Binary files /dev/null and b/files/assets/images/emojis/carpyamask.webp differ diff --git a/files/assets/images/emojis/cutemimikyu.webp b/files/assets/images/emojis/cutemimikyu.webp new file mode 100644 index 000000000..964417245 Binary files /dev/null and b/files/assets/images/emojis/cutemimikyu.webp differ diff --git a/files/assets/images/emojis/dkprimeapesprite.webp b/files/assets/images/emojis/dkprimeapesprite.webp new file mode 100644 index 000000000..ced30d92b Binary files /dev/null and b/files/assets/images/emojis/dkprimeapesprite.webp differ diff --git a/files/assets/images/emojis/dumstickdancer.webp b/files/assets/images/emojis/dumstickdancer.webp new file mode 100644 index 000000000..26d7b1ad4 Binary files /dev/null and b/files/assets/images/emojis/dumstickdancer.webp differ diff --git a/files/assets/images/emojis/fireball.webp b/files/assets/images/emojis/fireball.webp new file mode 100644 index 000000000..6be82f77e Binary files /dev/null and b/files/assets/images/emojis/fireball.webp differ diff --git a/files/assets/images/emojis/fireball2.webp b/files/assets/images/emojis/fireball2.webp new file mode 100644 index 000000000..8d1b56244 Binary files /dev/null and b/files/assets/images/emojis/fireball2.webp differ diff --git a/files/assets/images/emojis/interrobang.webp b/files/assets/images/emojis/interrobang.webp new file mode 100644 index 000000000..b83a45eea Binary files /dev/null and b/files/assets/images/emojis/interrobang.webp differ diff --git a/files/assets/images/emojis/laserbeam.webp b/files/assets/images/emojis/laserbeam.webp new file mode 100644 index 000000000..ee8800601 Binary files /dev/null and b/files/assets/images/emojis/laserbeam.webp differ diff --git a/files/assets/images/emojis/leafattack.webp b/files/assets/images/emojis/leafattack.webp new file mode 100644 index 000000000..3e1739bd5 Binary files /dev/null and b/files/assets/images/emojis/leafattack.webp differ diff --git a/files/assets/images/emojis/lightning.webp b/files/assets/images/emojis/lightning.webp new file mode 100644 index 000000000..c2a5116ad Binary files /dev/null and b/files/assets/images/emojis/lightning.webp differ diff --git a/files/assets/images/emojis/marcusgiratina.webp b/files/assets/images/emojis/marcusgiratina.webp new file mode 100644 index 000000000..40acd0812 Binary files /dev/null and b/files/assets/images/emojis/marcusgiratina.webp differ diff --git a/files/assets/images/emojis/marseyabsol.webp b/files/assets/images/emojis/marseyabsol.webp new file mode 100644 index 000000000..77df98c7f Binary files /dev/null and b/files/assets/images/emojis/marseyabsol.webp differ diff --git a/files/assets/images/emojis/marseyaipom.webp b/files/assets/images/emojis/marseyaipom.webp new file mode 100644 index 000000000..6191e3fe6 Binary files /dev/null and b/files/assets/images/emojis/marseyaipom.webp differ diff --git a/files/assets/images/emojis/marseyarbok.webp b/files/assets/images/emojis/marseyarbok.webp new file mode 100644 index 000000000..07b69642d Binary files /dev/null and b/files/assets/images/emojis/marseyarbok.webp differ diff --git a/files/assets/images/emojis/marseyarticuno.webp b/files/assets/images/emojis/marseyarticuno.webp new file mode 100644 index 000000000..5ac7686db Binary files /dev/null and b/files/assets/images/emojis/marseyarticuno.webp differ diff --git a/files/assets/images/emojis/marseyastronautblack.webp b/files/assets/images/emojis/marseyastronautblack.webp new file mode 100644 index 000000000..8152a3a3b Binary files /dev/null and b/files/assets/images/emojis/marseyastronautblack.webp differ diff --git a/files/assets/images/emojis/marseybacktodiscord.webp b/files/assets/images/emojis/marseybacktodiscord.webp new file mode 100644 index 000000000..d4c574de0 Binary files /dev/null and b/files/assets/images/emojis/marseybacktodiscord.webp differ diff --git a/files/assets/images/emojis/marseybacktoreddit.webp b/files/assets/images/emojis/marseybacktoreddit.webp new file mode 100644 index 000000000..051d801dd Binary files /dev/null and b/files/assets/images/emojis/marseybacktoreddit.webp differ diff --git a/files/assets/images/emojis/marseybacktotumblr.webp b/files/assets/images/emojis/marseybacktotumblr.webp new file mode 100644 index 000000000..1c0244198 Binary files /dev/null and b/files/assets/images/emojis/marseybacktotumblr.webp differ diff --git a/files/assets/images/emojis/marseybacktotwitter.webp b/files/assets/images/emojis/marseybacktotwitter.webp new file mode 100644 index 000000000..0e8304881 Binary files /dev/null and b/files/assets/images/emojis/marseybacktotwitter.webp differ diff --git a/files/assets/images/emojis/marseybanette.webp b/files/assets/images/emojis/marseybanette.webp new file mode 100644 index 000000000..1962f8f5e Binary files /dev/null and b/files/assets/images/emojis/marseybanette.webp differ diff --git a/files/assets/images/emojis/marseybellossom.webp b/files/assets/images/emojis/marseybellossom.webp new file mode 100644 index 000000000..7200f4e51 Binary files /dev/null and b/files/assets/images/emojis/marseybellossom.webp differ diff --git a/files/assets/images/emojis/marseyblairwitch.webp b/files/assets/images/emojis/marseyblairwitch.webp new file mode 100644 index 000000000..590430ebc Binary files /dev/null and b/files/assets/images/emojis/marseyblairwitch.webp differ diff --git a/files/assets/images/emojis/marseybulbasaur2.webp b/files/assets/images/emojis/marseybulbasaur2.webp new file mode 100644 index 000000000..869bef918 Binary files /dev/null and b/files/assets/images/emojis/marseybulbasaur2.webp differ diff --git a/files/assets/images/emojis/marseybutt3.webp b/files/assets/images/emojis/marseybutt3.webp new file mode 100644 index 000000000..d9e09f94a Binary files /dev/null and b/files/assets/images/emojis/marseybutt3.webp differ diff --git a/files/assets/images/emojis/marseybutt3boy.webp b/files/assets/images/emojis/marseybutt3boy.webp new file mode 100644 index 000000000..0c16fc1be Binary files /dev/null and b/files/assets/images/emojis/marseybutt3boy.webp differ diff --git a/files/assets/images/emojis/marseybutterfree.webp b/files/assets/images/emojis/marseybutterfree.webp new file mode 100644 index 000000000..27c791295 Binary files /dev/null and b/files/assets/images/emojis/marseybutterfree.webp differ diff --git a/files/assets/images/emojis/marseybuttplug.webp b/files/assets/images/emojis/marseybuttplug.webp new file mode 100644 index 000000000..23568f9c3 Binary files /dev/null and b/files/assets/images/emojis/marseybuttplug.webp differ diff --git a/files/assets/images/emojis/marseycacnea.webp b/files/assets/images/emojis/marseycacnea.webp new file mode 100644 index 000000000..d72ec98a8 Binary files /dev/null and b/files/assets/images/emojis/marseycacnea.webp differ diff --git a/files/assets/images/emojis/marseycapysmoochtrans.webp b/files/assets/images/emojis/marseycapysmoochtrans.webp new file mode 100644 index 000000000..7f97c0b99 Binary files /dev/null and b/files/assets/images/emojis/marseycapysmoochtrans.webp differ diff --git a/files/assets/images/emojis/marseycaterpie.webp b/files/assets/images/emojis/marseycaterpie.webp new file mode 100644 index 000000000..264ea663d Binary files /dev/null and b/files/assets/images/emojis/marseycaterpie.webp differ diff --git a/files/assets/images/emojis/marseycatgirl7.webp b/files/assets/images/emojis/marseycatgirl7.webp new file mode 100644 index 000000000..e6a5df15c Binary files /dev/null and b/files/assets/images/emojis/marseycatgirl7.webp differ diff --git a/files/assets/images/emojis/marseychan.webp b/files/assets/images/emojis/marseychan.webp new file mode 100644 index 000000000..6fbcab677 Binary files /dev/null and b/files/assets/images/emojis/marseychan.webp differ diff --git a/files/assets/images/emojis/marseychansey.webp b/files/assets/images/emojis/marseychansey.webp new file mode 100644 index 000000000..6dacd9ac8 Binary files /dev/null and b/files/assets/images/emojis/marseychansey.webp differ diff --git a/files/assets/images/emojis/marseycharjabug.webp b/files/assets/images/emojis/marseycharjabug.webp new file mode 100644 index 000000000..5414478e3 Binary files /dev/null and b/files/assets/images/emojis/marseycharjabug.webp differ diff --git a/files/assets/images/emojis/marseycharmander.webp b/files/assets/images/emojis/marseycharmander.webp new file mode 100644 index 000000000..514e092fc Binary files /dev/null and b/files/assets/images/emojis/marseycharmander.webp differ diff --git a/files/assets/images/emojis/marseychestburster.webp b/files/assets/images/emojis/marseychestburster.webp new file mode 100644 index 000000000..7b738735e Binary files /dev/null and b/files/assets/images/emojis/marseychestburster.webp differ diff --git a/files/assets/images/emojis/marseychudsnappyactivated.webp b/files/assets/images/emojis/marseychudsnappyactivated.webp new file mode 100644 index 000000000..50d35e70d Binary files /dev/null and b/files/assets/images/emojis/marseychudsnappyactivated.webp differ diff --git a/files/assets/images/emojis/marseycindaquil.webp b/files/assets/images/emojis/marseycindaquil.webp new file mode 100644 index 000000000..0c8900b2c Binary files /dev/null and b/files/assets/images/emojis/marseycindaquil.webp differ diff --git a/files/assets/images/emojis/marseycombee.webp b/files/assets/images/emojis/marseycombee.webp new file mode 100644 index 000000000..da010ac20 Binary files /dev/null and b/files/assets/images/emojis/marseycombee.webp differ diff --git a/files/assets/images/emojis/marseycookie.webp b/files/assets/images/emojis/marseycookie.webp new file mode 100644 index 000000000..ce1a8b8be Binary files /dev/null and b/files/assets/images/emojis/marseycookie.webp differ diff --git a/files/assets/images/emojis/marseycorner.webp b/files/assets/images/emojis/marseycorner.webp new file mode 100644 index 000000000..33d6e0170 Binary files /dev/null and b/files/assets/images/emojis/marseycorner.webp differ diff --git a/files/assets/images/emojis/marseycyndaquil.webp b/files/assets/images/emojis/marseycyndaquil.webp new file mode 100644 index 000000000..8c1aaa618 Binary files /dev/null and b/files/assets/images/emojis/marseycyndaquil.webp differ diff --git a/files/assets/images/emojis/marseydarmanitan.webp b/files/assets/images/emojis/marseydarmanitan.webp new file mode 100644 index 000000000..0523b4db0 Binary files /dev/null and b/files/assets/images/emojis/marseydarmanitan.webp differ diff --git a/files/assets/images/emojis/marseydeath.webp b/files/assets/images/emojis/marseydeath.webp new file mode 100644 index 000000000..9d3994c75 Binary files /dev/null and b/files/assets/images/emojis/marseydeath.webp differ diff --git a/files/assets/images/emojis/marseydiglet.webp b/files/assets/images/emojis/marseydiglet.webp new file mode 100644 index 000000000..0d0874a3e Binary files /dev/null and b/files/assets/images/emojis/marseydiglet.webp differ diff --git a/files/assets/images/emojis/marseyditto2.webp b/files/assets/images/emojis/marseyditto2.webp new file mode 100644 index 000000000..5ec02d7fd Binary files /dev/null and b/files/assets/images/emojis/marseyditto2.webp differ diff --git a/files/assets/images/emojis/marseyditto3.webp b/files/assets/images/emojis/marseyditto3.webp new file mode 100644 index 000000000..ce81fce0f Binary files /dev/null and b/files/assets/images/emojis/marseyditto3.webp differ diff --git a/files/assets/images/emojis/marseydoduo.webp b/files/assets/images/emojis/marseydoduo.webp new file mode 100644 index 000000000..7be8bbb14 Binary files /dev/null and b/files/assets/images/emojis/marseydoduo.webp differ diff --git a/files/assets/images/emojis/marseydoduoshiny.webp b/files/assets/images/emojis/marseydoduoshiny.webp new file mode 100644 index 000000000..098aca30c Binary files /dev/null and b/files/assets/images/emojis/marseydoduoshiny.webp differ diff --git a/files/assets/images/emojis/marseydratini.webp b/files/assets/images/emojis/marseydratini.webp new file mode 100644 index 000000000..50202aa09 Binary files /dev/null and b/files/assets/images/emojis/marseydratini.webp differ diff --git a/files/assets/images/emojis/marseydrifbloon.webp b/files/assets/images/emojis/marseydrifbloon.webp new file mode 100644 index 000000000..7a0d39920 Binary files /dev/null and b/files/assets/images/emojis/marseydrifbloon.webp differ diff --git a/files/assets/images/emojis/marseydrownedcarcass.webp b/files/assets/images/emojis/marseydrownedcarcass.webp new file mode 100644 index 000000000..5db2834cc Binary files /dev/null and b/files/assets/images/emojis/marseydrownedcarcass.webp differ diff --git a/files/assets/images/emojis/marseydugtrio.webp b/files/assets/images/emojis/marseydugtrio.webp new file mode 100644 index 000000000..4cb768cd8 Binary files /dev/null and b/files/assets/images/emojis/marseydugtrio.webp differ diff --git a/files/assets/images/emojis/marseydugtrio2.webp b/files/assets/images/emojis/marseydugtrio2.webp new file mode 100644 index 000000000..0b4dc595d Binary files /dev/null and b/files/assets/images/emojis/marseydugtrio2.webp differ diff --git a/files/assets/images/emojis/marseyduosion.webp b/files/assets/images/emojis/marseyduosion.webp new file mode 100644 index 000000000..239e97788 Binary files /dev/null and b/files/assets/images/emojis/marseyduosion.webp differ diff --git a/files/assets/images/emojis/marseyduriansniff.webp b/files/assets/images/emojis/marseyduriansniff.webp new file mode 100644 index 000000000..09a11bd7e Binary files /dev/null and b/files/assets/images/emojis/marseyduriansniff.webp differ diff --git a/files/assets/images/emojis/marseyeevee.webp b/files/assets/images/emojis/marseyeevee.webp new file mode 100644 index 000000000..0d5f9c22f Binary files /dev/null and b/files/assets/images/emojis/marseyeevee.webp differ diff --git a/files/assets/images/emojis/marseyeiscue.webp b/files/assets/images/emojis/marseyeiscue.webp new file mode 100644 index 000000000..18a2d5a88 Binary files /dev/null and b/files/assets/images/emojis/marseyeiscue.webp differ diff --git a/files/assets/images/emojis/marseyekans.webp b/files/assets/images/emojis/marseyekans.webp new file mode 100644 index 000000000..3eaa381e3 Binary files /dev/null and b/files/assets/images/emojis/marseyekans.webp differ diff --git a/files/assets/images/emojis/marseyelectrode.webp b/files/assets/images/emojis/marseyelectrode.webp new file mode 100644 index 000000000..6d84e5d9e Binary files /dev/null and b/files/assets/images/emojis/marseyelectrode.webp differ diff --git a/files/assets/images/emojis/marseyemolga.webp b/files/assets/images/emojis/marseyemolga.webp new file mode 100644 index 000000000..222cd2d8c Binary files /dev/null and b/files/assets/images/emojis/marseyemolga.webp differ diff --git a/files/assets/images/emojis/marseyespathra.webp b/files/assets/images/emojis/marseyespathra.webp new file mode 100644 index 000000000..1c5177ad8 Binary files /dev/null and b/files/assets/images/emojis/marseyespathra.webp differ diff --git a/files/assets/images/emojis/marseyexeggcute.webp b/files/assets/images/emojis/marseyexeggcute.webp new file mode 100644 index 000000000..f3fae14ba Binary files /dev/null and b/files/assets/images/emojis/marseyexeggcute.webp differ diff --git a/files/assets/images/emojis/marseyfearow.webp b/files/assets/images/emojis/marseyfearow.webp new file mode 100644 index 000000000..9fde56abc Binary files /dev/null and b/files/assets/images/emojis/marseyfearow.webp differ diff --git a/files/assets/images/emojis/marseyfedseydealwithit.webp b/files/assets/images/emojis/marseyfedseydealwithit.webp new file mode 100644 index 000000000..50e7494f5 Binary files /dev/null and b/files/assets/images/emojis/marseyfedseydealwithit.webp differ diff --git a/files/assets/images/emojis/marseyfeedme.webp b/files/assets/images/emojis/marseyfeedme.webp new file mode 100644 index 000000000..b2b6a5329 Binary files /dev/null and b/files/assets/images/emojis/marseyfeedme.webp differ diff --git a/files/assets/images/emojis/marseyfelicia.webp b/files/assets/images/emojis/marseyfelicia.webp new file mode 100644 index 000000000..99baeea4b Binary files /dev/null and b/files/assets/images/emojis/marseyfelicia.webp differ diff --git a/files/assets/images/emojis/marseyfirehead.webp b/files/assets/images/emojis/marseyfirehead.webp new file mode 100644 index 000000000..9b7e485d9 Binary files /dev/null and b/files/assets/images/emojis/marseyfirehead.webp differ diff --git a/files/assets/images/emojis/marseyfoongus.webp b/files/assets/images/emojis/marseyfoongus.webp new file mode 100644 index 000000000..cab69e64a Binary files /dev/null and b/files/assets/images/emojis/marseyfoongus.webp differ diff --git a/files/assets/images/emojis/marseyforretress.webp b/files/assets/images/emojis/marseyforretress.webp new file mode 100644 index 000000000..0d960f872 Binary files /dev/null and b/files/assets/images/emojis/marseyforretress.webp differ diff --git a/files/assets/images/emojis/marseygengar.webp b/files/assets/images/emojis/marseygengar.webp new file mode 100644 index 000000000..192bdb707 Binary files /dev/null and b/files/assets/images/emojis/marseygengar.webp differ diff --git a/files/assets/images/emojis/marseygeodude.webp b/files/assets/images/emojis/marseygeodude.webp new file mode 100644 index 000000000..cf106b9e8 Binary files /dev/null and b/files/assets/images/emojis/marseygeodude.webp differ diff --git a/files/assets/images/emojis/marseygeodude2.webp b/files/assets/images/emojis/marseygeodude2.webp new file mode 100644 index 000000000..5a002cf05 Binary files /dev/null and b/files/assets/images/emojis/marseygeodude2.webp differ diff --git a/files/assets/images/emojis/marseygloom.webp b/files/assets/images/emojis/marseygloom.webp new file mode 100644 index 000000000..4983957b0 Binary files /dev/null and b/files/assets/images/emojis/marseygloom.webp differ diff --git a/files/assets/images/emojis/marseygolbat.webp b/files/assets/images/emojis/marseygolbat.webp new file mode 100644 index 000000000..adda16f06 Binary files /dev/null and b/files/assets/images/emojis/marseygolbat.webp differ diff --git a/files/assets/images/emojis/marseygoldeen.webp b/files/assets/images/emojis/marseygoldeen.webp new file mode 100644 index 000000000..38063a2bc Binary files /dev/null and b/files/assets/images/emojis/marseygoldeen.webp differ diff --git a/files/assets/images/emojis/marseygoomy.webp b/files/assets/images/emojis/marseygoomy.webp new file mode 100644 index 000000000..02f2ec623 Binary files /dev/null and b/files/assets/images/emojis/marseygoomy.webp differ diff --git a/files/assets/images/emojis/marseygoy.webp b/files/assets/images/emojis/marseygoy.webp new file mode 100644 index 000000000..91a9d9771 Binary files /dev/null and b/files/assets/images/emojis/marseygoy.webp differ diff --git a/files/assets/images/emojis/marseygrizz2.webp b/files/assets/images/emojis/marseygrizz2.webp new file mode 100644 index 000000000..5897b5763 Binary files /dev/null and b/files/assets/images/emojis/marseygrizz2.webp differ diff --git a/files/assets/images/emojis/marseygrowlithe.webp b/files/assets/images/emojis/marseygrowlithe.webp new file mode 100644 index 000000000..f4583e16a Binary files /dev/null and b/files/assets/images/emojis/marseygrowlithe.webp differ diff --git a/files/assets/images/emojis/marseygulpin.webp b/files/assets/images/emojis/marseygulpin.webp new file mode 100644 index 000000000..869a681a9 Binary files /dev/null and b/files/assets/images/emojis/marseygulpin.webp differ diff --git a/files/assets/images/emojis/marseyheracross.webp b/files/assets/images/emojis/marseyheracross.webp new file mode 100644 index 000000000..07f5349e2 Binary files /dev/null and b/files/assets/images/emojis/marseyheracross.webp differ diff --git a/files/assets/images/emojis/marseyhesboo.webp b/files/assets/images/emojis/marseyhesboo.webp new file mode 100644 index 000000000..f5e126048 Binary files /dev/null and b/files/assets/images/emojis/marseyhesboo.webp differ diff --git a/files/assets/images/emojis/marseyhesboo3.webp b/files/assets/images/emojis/marseyhesboo3.webp new file mode 100644 index 000000000..f7b7c1ab0 Binary files /dev/null and b/files/assets/images/emojis/marseyhesboo3.webp differ diff --git a/files/assets/images/emojis/marseyhitmonlee.webp b/files/assets/images/emojis/marseyhitmonlee.webp new file mode 100644 index 000000000..b0208a6e5 Binary files /dev/null and b/files/assets/images/emojis/marseyhitmonlee.webp differ diff --git a/files/assets/images/emojis/marseyhodag.webp b/files/assets/images/emojis/marseyhodag.webp new file mode 100644 index 000000000..03b1d0fd7 Binary files /dev/null and b/files/assets/images/emojis/marseyhodag.webp differ diff --git a/files/assets/images/emojis/marseyhoppip.webp b/files/assets/images/emojis/marseyhoppip.webp new file mode 100644 index 000000000..af975252b Binary files /dev/null and b/files/assets/images/emojis/marseyhoppip.webp differ diff --git a/files/assets/images/emojis/marseyhorsecock.webp b/files/assets/images/emojis/marseyhorsecock.webp new file mode 100644 index 000000000..6fa070010 Binary files /dev/null and b/files/assets/images/emojis/marseyhorsecock.webp differ diff --git a/files/assets/images/emojis/marseyivysaur.webp b/files/assets/images/emojis/marseyivysaur.webp new file mode 100644 index 000000000..91435323f Binary files /dev/null and b/files/assets/images/emojis/marseyivysaur.webp differ diff --git a/files/assets/images/emojis/marseyjetbombing.webp b/files/assets/images/emojis/marseyjetbombing.webp index 688db642d..699c52c97 100644 Binary files a/files/assets/images/emojis/marseyjetbombing.webp and b/files/assets/images/emojis/marseyjetbombing.webp differ diff --git a/files/assets/images/emojis/marseykangaskhan.webp b/files/assets/images/emojis/marseykangaskhan.webp new file mode 100644 index 000000000..f89616bb4 Binary files /dev/null and b/files/assets/images/emojis/marseykangaskhan.webp differ diff --git a/files/assets/images/emojis/marseyklennycross.webp b/files/assets/images/emojis/marseyklennycross.webp new file mode 100644 index 000000000..8bbd0e892 Binary files /dev/null and b/files/assets/images/emojis/marseyklennycross.webp differ diff --git a/files/assets/images/emojis/marseykyubey.webp b/files/assets/images/emojis/marseykyubey.webp new file mode 100644 index 000000000..d536bced6 Binary files /dev/null and b/files/assets/images/emojis/marseykyubey.webp differ diff --git a/files/assets/images/emojis/marseylatias.webp b/files/assets/images/emojis/marseylatias.webp new file mode 100644 index 000000000..4e2747690 Binary files /dev/null and b/files/assets/images/emojis/marseylatias.webp differ diff --git a/files/assets/images/emojis/marseylitwick.webp b/files/assets/images/emojis/marseylitwick.webp new file mode 100644 index 000000000..298fbfa7d Binary files /dev/null and b/files/assets/images/emojis/marseylitwick.webp differ diff --git a/files/assets/images/emojis/marseylopunny.webp b/files/assets/images/emojis/marseylopunny.webp new file mode 100644 index 000000000..d752e0b0d Binary files /dev/null and b/files/assets/images/emojis/marseylopunny.webp differ diff --git a/files/assets/images/emojis/marseymachamp.webp b/files/assets/images/emojis/marseymachamp.webp new file mode 100644 index 000000000..0d65dc83f Binary files /dev/null and b/files/assets/images/emojis/marseymachamp.webp differ diff --git a/files/assets/images/emojis/marseymajor2.webp b/files/assets/images/emojis/marseymajor2.webp new file mode 100644 index 000000000..eda444ff1 Binary files /dev/null and b/files/assets/images/emojis/marseymajor2.webp differ diff --git a/files/assets/images/emojis/marseymarshadow.webp b/files/assets/images/emojis/marseymarshadow.webp new file mode 100644 index 000000000..b5f0b81f6 Binary files /dev/null and b/files/assets/images/emojis/marseymarshadow.webp differ diff --git a/files/assets/images/emojis/marseymasquerade.webp b/files/assets/images/emojis/marseymasquerade.webp new file mode 100644 index 000000000..f8e5f74cf Binary files /dev/null and b/files/assets/images/emojis/marseymasquerade.webp differ diff --git a/files/assets/images/emojis/marseymaushold.webp b/files/assets/images/emojis/marseymaushold.webp new file mode 100644 index 000000000..10e14d611 Binary files /dev/null and b/files/assets/images/emojis/marseymaushold.webp differ diff --git a/files/assets/images/emojis/marseymew.webp b/files/assets/images/emojis/marseymew.webp new file mode 100644 index 000000000..3e073e4aa Binary files /dev/null and b/files/assets/images/emojis/marseymew.webp differ diff --git a/files/assets/images/emojis/marseymudkip.webp b/files/assets/images/emojis/marseymudkip.webp new file mode 100644 index 000000000..fd5fd2fff Binary files /dev/null and b/files/assets/images/emojis/marseymudkip.webp differ diff --git a/files/assets/images/emojis/marseymuttbrasil.webp b/files/assets/images/emojis/marseymuttbrasil.webp new file mode 100644 index 000000000..08f726a8e Binary files /dev/null and b/files/assets/images/emojis/marseymuttbrasil.webp differ diff --git a/files/assets/images/emojis/marseynatu.webp b/files/assets/images/emojis/marseynatu.webp new file mode 100644 index 000000000..377579bec Binary files /dev/null and b/files/assets/images/emojis/marseynatu.webp differ diff --git a/files/assets/images/emojis/marseynittanylion.webp b/files/assets/images/emojis/marseynittanylion.webp new file mode 100644 index 000000000..0730da2dc Binary files /dev/null and b/files/assets/images/emojis/marseynittanylion.webp differ diff --git a/files/assets/images/emojis/marseynoyouoccupy.webp b/files/assets/images/emojis/marseynoyouoccupy.webp new file mode 100644 index 000000000..f6f522ed0 Binary files /dev/null and b/files/assets/images/emojis/marseynoyouoccupy.webp differ diff --git a/files/assets/images/emojis/marseyoddish.webp b/files/assets/images/emojis/marseyoddish.webp new file mode 100644 index 000000000..f65edeef0 Binary files /dev/null and b/files/assets/images/emojis/marseyoddish.webp differ diff --git a/files/assets/images/emojis/marseyomanyte.webp b/files/assets/images/emojis/marseyomanyte.webp new file mode 100644 index 000000000..824f4eac2 Binary files /dev/null and b/files/assets/images/emojis/marseyomanyte.webp differ diff --git a/files/assets/images/emojis/marseyonyx.webp b/files/assets/images/emojis/marseyonyx.webp new file mode 100644 index 000000000..923a66b63 Binary files /dev/null and b/files/assets/images/emojis/marseyonyx.webp differ diff --git a/files/assets/images/emojis/marseyosrs.webp b/files/assets/images/emojis/marseyosrs.webp new file mode 100644 index 000000000..db7df94d4 Binary files /dev/null and b/files/assets/images/emojis/marseyosrs.webp differ diff --git a/files/assets/images/emojis/marseyparas.webp b/files/assets/images/emojis/marseyparas.webp new file mode 100644 index 000000000..3f8b63b85 Binary files /dev/null and b/files/assets/images/emojis/marseyparas.webp differ diff --git a/files/assets/images/emojis/marseypenis2.webp b/files/assets/images/emojis/marseypenis2.webp new file mode 100644 index 000000000..8355a1360 Binary files /dev/null and b/files/assets/images/emojis/marseypenis2.webp differ diff --git a/files/assets/images/emojis/marseypichu.webp b/files/assets/images/emojis/marseypichu.webp new file mode 100644 index 000000000..041ba8858 Binary files /dev/null and b/files/assets/images/emojis/marseypichu.webp differ diff --git a/files/assets/images/emojis/marseyplusle.webp b/files/assets/images/emojis/marseyplusle.webp new file mode 100644 index 000000000..b4bc9e1bb Binary files /dev/null and b/files/assets/images/emojis/marseyplusle.webp differ diff --git a/files/assets/images/emojis/marseypokeball.webp b/files/assets/images/emojis/marseypokeball.webp new file mode 100644 index 000000000..6f8403b99 Binary files /dev/null and b/files/assets/images/emojis/marseypokeball.webp differ diff --git a/files/assets/images/emojis/marseypoopballs.webp b/files/assets/images/emojis/marseypoopballs.webp new file mode 100644 index 000000000..17dc1623c Binary files /dev/null and b/files/assets/images/emojis/marseypoopballs.webp differ diff --git a/files/assets/images/emojis/marseyporygon2.webp b/files/assets/images/emojis/marseyporygon2.webp new file mode 100644 index 000000000..41491f6d0 Binary files /dev/null and b/files/assets/images/emojis/marseyporygon2.webp differ diff --git a/files/assets/images/emojis/marseypraying.webp b/files/assets/images/emojis/marseypraying.webp new file mode 100644 index 000000000..f4d8c4489 Binary files /dev/null and b/files/assets/images/emojis/marseypraying.webp differ diff --git a/files/assets/images/emojis/marseypumpkaboo.webp b/files/assets/images/emojis/marseypumpkaboo.webp new file mode 100644 index 000000000..b55079bff Binary files /dev/null and b/files/assets/images/emojis/marseypumpkaboo.webp differ diff --git a/files/assets/images/emojis/marseyraichu.webp b/files/assets/images/emojis/marseyraichu.webp new file mode 100644 index 000000000..42b7dda4d Binary files /dev/null and b/files/assets/images/emojis/marseyraichu.webp differ diff --git a/files/assets/images/emojis/marseyreposthorse.webp b/files/assets/images/emojis/marseyreposthorse.webp new file mode 100644 index 000000000..20e4583fd Binary files /dev/null and b/files/assets/images/emojis/marseyreposthorse.webp differ diff --git a/files/assets/images/emojis/marseyreuniclus.webp b/files/assets/images/emojis/marseyreuniclus.webp new file mode 100644 index 000000000..4d18509ac Binary files /dev/null and b/files/assets/images/emojis/marseyreuniclus.webp differ diff --git a/files/assets/images/emojis/marseyrhyperior.webp b/files/assets/images/emojis/marseyrhyperior.webp new file mode 100644 index 000000000..5de530715 Binary files /dev/null and b/files/assets/images/emojis/marseyrhyperior.webp differ diff --git a/files/assets/images/emojis/marseysableye.webp b/files/assets/images/emojis/marseysableye.webp new file mode 100644 index 000000000..123fb6df3 Binary files /dev/null and b/files/assets/images/emojis/marseysableye.webp differ diff --git a/files/assets/images/emojis/marseysadwave.webp b/files/assets/images/emojis/marseysadwave.webp new file mode 100644 index 000000000..57899ad16 Binary files /dev/null and b/files/assets/images/emojis/marseysadwave.webp differ diff --git a/files/assets/images/emojis/marseysadwave2.webp b/files/assets/images/emojis/marseysadwave2.webp new file mode 100644 index 000000000..414189cac Binary files /dev/null and b/files/assets/images/emojis/marseysadwave2.webp differ diff --git a/files/assets/images/emojis/marseysalmuhammad.webp b/files/assets/images/emojis/marseysalmuhammad.webp deleted file mode 100644 index 35e0d29fb..000000000 Binary files a/files/assets/images/emojis/marseysalmuhammad.webp and /dev/null differ diff --git a/files/assets/images/emojis/marseysandshrew.webp b/files/assets/images/emojis/marseysandshrew.webp new file mode 100644 index 000000000..3e5fa2f36 Binary files /dev/null and b/files/assets/images/emojis/marseysandshrew.webp differ diff --git a/files/assets/images/emojis/marseyshaymin.webp b/files/assets/images/emojis/marseyshaymin.webp new file mode 100644 index 000000000..1fa514193 Binary files /dev/null and b/files/assets/images/emojis/marseyshaymin.webp differ diff --git a/files/assets/images/emojis/marseyshinx.webp b/files/assets/images/emojis/marseyshinx.webp new file mode 100644 index 000000000..59cea98ea Binary files /dev/null and b/files/assets/images/emojis/marseyshinx.webp differ diff --git a/files/assets/images/emojis/marseyshreddedmanlet.webp b/files/assets/images/emojis/marseyshreddedmanlet.webp new file mode 100644 index 000000000..dfeded6f1 Binary files /dev/null and b/files/assets/images/emojis/marseyshreddedmanlet.webp differ diff --git a/files/assets/images/emojis/marseyshroomish.webp b/files/assets/images/emojis/marseyshroomish.webp new file mode 100644 index 000000000..946d0234b Binary files /dev/null and b/files/assets/images/emojis/marseyshroomish.webp differ diff --git a/files/assets/images/emojis/marseyskitty.webp b/files/assets/images/emojis/marseyskitty.webp new file mode 100644 index 000000000..3808ef0c3 Binary files /dev/null and b/files/assets/images/emojis/marseyskitty.webp differ diff --git a/files/assets/images/emojis/marseyskitty2.webp b/files/assets/images/emojis/marseyskitty2.webp new file mode 100644 index 000000000..f8aeb616f Binary files /dev/null and b/files/assets/images/emojis/marseyskitty2.webp differ diff --git a/files/assets/images/emojis/marseysmoochum.webp b/files/assets/images/emojis/marseysmoochum.webp new file mode 100644 index 000000000..8496d0f9e Binary files /dev/null and b/files/assets/images/emojis/marseysmoochum.webp differ diff --git a/files/assets/images/emojis/marseysnappyregisteel.webp b/files/assets/images/emojis/marseysnappyregisteel.webp new file mode 100644 index 000000000..d44728a50 Binary files /dev/null and b/files/assets/images/emojis/marseysnappyregisteel.webp differ diff --git a/files/assets/images/emojis/marseysolosis.webp b/files/assets/images/emojis/marseysolosis.webp new file mode 100644 index 000000000..7c9500301 Binary files /dev/null and b/files/assets/images/emojis/marseysolosis.webp differ diff --git a/files/assets/images/emojis/marseyspinarak.webp b/files/assets/images/emojis/marseyspinarak.webp new file mode 100644 index 000000000..d2a9a6736 Binary files /dev/null and b/files/assets/images/emojis/marseyspinarak.webp differ diff --git a/files/assets/images/emojis/marseysprigatito.webp b/files/assets/images/emojis/marseysprigatito.webp new file mode 100644 index 000000000..e4432f879 Binary files /dev/null and b/files/assets/images/emojis/marseysprigatito.webp differ diff --git a/files/assets/images/emojis/marseysquirtle.webp b/files/assets/images/emojis/marseysquirtle.webp new file mode 100644 index 000000000..dfd7f59c2 Binary files /dev/null and b/files/assets/images/emojis/marseysquirtle.webp differ diff --git a/files/assets/images/emojis/marseysquirtlesquad.webp b/files/assets/images/emojis/marseysquirtlesquad.webp new file mode 100644 index 000000000..8f057c029 Binary files /dev/null and b/files/assets/images/emojis/marseysquirtlesquad.webp differ diff --git a/files/assets/images/emojis/marseysquirtlesquad1.webp b/files/assets/images/emojis/marseysquirtlesquad1.webp new file mode 100644 index 000000000..1aa5c8782 Binary files /dev/null and b/files/assets/images/emojis/marseysquirtlesquad1.webp differ diff --git a/files/assets/images/emojis/marseysquirtlesquad2.webp b/files/assets/images/emojis/marseysquirtlesquad2.webp new file mode 100644 index 000000000..3141a0e14 Binary files /dev/null and b/files/assets/images/emojis/marseysquirtlesquad2.webp differ diff --git a/files/assets/images/emojis/marseysquirtlesquad3.webp b/files/assets/images/emojis/marseysquirtlesquad3.webp new file mode 100644 index 000000000..c38ad62c4 Binary files /dev/null and b/files/assets/images/emojis/marseysquirtlesquad3.webp differ diff --git a/files/assets/images/emojis/marseysquirtlesquad4.webp b/files/assets/images/emojis/marseysquirtlesquad4.webp new file mode 100644 index 000000000..1aa5c8782 Binary files /dev/null and b/files/assets/images/emojis/marseysquirtlesquad4.webp differ diff --git a/files/assets/images/emojis/marseyswablu.webp b/files/assets/images/emojis/marseyswablu.webp new file mode 100644 index 000000000..7fe8a993c Binary files /dev/null and b/files/assets/images/emojis/marseyswablu.webp differ diff --git a/files/assets/images/emojis/marseytogekiss.webp b/files/assets/images/emojis/marseytogekiss.webp new file mode 100644 index 000000000..27fb78eca Binary files /dev/null and b/files/assets/images/emojis/marseytogekiss.webp differ diff --git a/files/assets/images/emojis/marseytogepi.webp b/files/assets/images/emojis/marseytogepi.webp new file mode 100644 index 000000000..01b04d283 Binary files /dev/null and b/files/assets/images/emojis/marseytogepi.webp differ diff --git a/files/assets/images/emojis/marseyvee.webp b/files/assets/images/emojis/marseyvee.webp new file mode 100644 index 000000000..56854f4b6 Binary files /dev/null and b/files/assets/images/emojis/marseyvee.webp differ diff --git a/files/assets/images/emojis/marseyvenusaur.webp b/files/assets/images/emojis/marseyvenusaur.webp new file mode 100644 index 000000000..6ec31372f Binary files /dev/null and b/files/assets/images/emojis/marseyvenusaur.webp differ diff --git a/files/assets/images/emojis/marseyvictini.webp b/files/assets/images/emojis/marseyvictini.webp new file mode 100644 index 000000000..ceff8601c Binary files /dev/null and b/files/assets/images/emojis/marseyvictini.webp differ diff --git a/files/assets/images/emojis/marseywhosthatpokemon.webp b/files/assets/images/emojis/marseywhosthatpokemon.webp new file mode 100644 index 000000000..ab05e3f8b Binary files /dev/null and b/files/assets/images/emojis/marseywhosthatpokemon.webp differ diff --git a/files/assets/images/emojis/marseywiglett.webp b/files/assets/images/emojis/marseywiglett.webp new file mode 100644 index 000000000..6797d9564 Binary files /dev/null and b/files/assets/images/emojis/marseywiglett.webp differ diff --git a/files/assets/images/emojis/marseywugtrio.webp b/files/assets/images/emojis/marseywugtrio.webp new file mode 100644 index 000000000..63ba28e5d Binary files /dev/null and b/files/assets/images/emojis/marseywugtrio.webp differ diff --git a/files/assets/images/emojis/marseywynaut.webp b/files/assets/images/emojis/marseywynaut.webp new file mode 100644 index 000000000..293219572 Binary files /dev/null and b/files/assets/images/emojis/marseywynaut.webp differ diff --git a/files/assets/images/emojis/marseyyanma.webp b/files/assets/images/emojis/marseyyanma.webp new file mode 100644 index 000000000..53732f377 Binary files /dev/null and b/files/assets/images/emojis/marseyyanma.webp differ diff --git a/files/assets/images/emojis/marseyyaranaikamoan.webp b/files/assets/images/emojis/marseyyaranaikamoan.webp new file mode 100644 index 000000000..55805e8ac Binary files /dev/null and b/files/assets/images/emojis/marseyyaranaikamoan.webp differ diff --git a/files/assets/images/emojis/marseyyveltal.webp b/files/assets/images/emojis/marseyyveltal.webp new file mode 100644 index 000000000..1bb14f41e Binary files /dev/null and b/files/assets/images/emojis/marseyyveltal.webp differ diff --git a/files/assets/images/emojis/marseyzapdos.webp b/files/assets/images/emojis/marseyzapdos.webp new file mode 100644 index 000000000..86dd7a2ce Binary files /dev/null and b/files/assets/images/emojis/marseyzapdos.webp differ diff --git a/files/assets/images/emojis/marseyzombierising.webp b/files/assets/images/emojis/marseyzombierising.webp new file mode 100644 index 000000000..969bc4e61 Binary files /dev/null and b/files/assets/images/emojis/marseyzombierising.webp differ diff --git a/files/assets/images/emojis/marseyzombiewink.webp b/files/assets/images/emojis/marseyzombiewink.webp new file mode 100644 index 000000000..8566b755e Binary files /dev/null and b/files/assets/images/emojis/marseyzombiewink.webp differ diff --git a/files/assets/images/emojis/patrickbatemanpointing.webp b/files/assets/images/emojis/patrickbatemanpointing.webp new file mode 100644 index 000000000..47a932aba Binary files /dev/null and b/files/assets/images/emojis/patrickbatemanpointing.webp differ diff --git a/files/assets/images/emojis/platybellsprout.webp b/files/assets/images/emojis/platybellsprout.webp new file mode 100644 index 000000000..8ffa89875 Binary files /dev/null and b/files/assets/images/emojis/platybellsprout.webp differ diff --git a/files/assets/images/emojis/platyduosion.webp b/files/assets/images/emojis/platyduosion.webp new file mode 100644 index 000000000..dec4c3971 Binary files /dev/null and b/files/assets/images/emojis/platyduosion.webp differ diff --git a/files/assets/images/emojis/platyreuniclus.webp b/files/assets/images/emojis/platyreuniclus.webp new file mode 100644 index 000000000..4beb46677 Binary files /dev/null and b/files/assets/images/emojis/platyreuniclus.webp differ diff --git a/files/assets/images/emojis/platysolosis.webp b/files/assets/images/emojis/platysolosis.webp new file mode 100644 index 000000000..fb038966c Binary files /dev/null and b/files/assets/images/emojis/platysolosis.webp differ diff --git a/files/assets/images/emojis/platyzapdos.webp b/files/assets/images/emojis/platyzapdos.webp new file mode 100644 index 000000000..78d806e04 Binary files /dev/null and b/files/assets/images/emojis/platyzapdos.webp differ diff --git a/files/assets/images/emojis/punchfast.webp b/files/assets/images/emojis/punchfast.webp new file mode 100644 index 000000000..3ecfe0cb4 Binary files /dev/null and b/files/assets/images/emojis/punchfast.webp differ diff --git a/files/assets/images/emojis/sub.webp b/files/assets/images/emojis/sub.webp new file mode 100644 index 000000000..76cde1890 Binary files /dev/null and b/files/assets/images/emojis/sub.webp differ diff --git a/files/assets/images/emojis/vinepoke.webp b/files/assets/images/emojis/vinepoke.webp new file mode 100644 index 000000000..efe5caf12 Binary files /dev/null and b/files/assets/images/emojis/vinepoke.webp differ diff --git a/files/assets/images/emojis/vinewhip.webp b/files/assets/images/emojis/vinewhip.webp new file mode 100644 index 000000000..e7eced6db Binary files /dev/null and b/files/assets/images/emojis/vinewhip.webp differ diff --git a/files/assets/images/emojis/waterjet.webp b/files/assets/images/emojis/waterjet.webp new file mode 100644 index 000000000..f7c96e47a Binary files /dev/null and b/files/assets/images/emojis/waterjet.webp differ diff --git a/files/assets/images/emojis/wolfaerodactyl.webp b/files/assets/images/emojis/wolfaerodactyl.webp new file mode 100644 index 000000000..fcf7acd54 Binary files /dev/null and b/files/assets/images/emojis/wolfaerodactyl.webp differ diff --git a/files/assets/images/emojis/wolfarcanine.webp b/files/assets/images/emojis/wolfarcanine.webp new file mode 100644 index 000000000..ebb0f1631 Binary files /dev/null and b/files/assets/images/emojis/wolfarcanine.webp differ diff --git a/files/assets/images/emojis/wolfbite.webp b/files/assets/images/emojis/wolfbite.webp new file mode 100644 index 000000000..3d6c3fa51 Binary files /dev/null and b/files/assets/images/emojis/wolfbite.webp differ diff --git a/files/assets/images/emojis/wolfblastoise.webp b/files/assets/images/emojis/wolfblastoise.webp new file mode 100644 index 000000000..7a6a368a9 Binary files /dev/null and b/files/assets/images/emojis/wolfblastoise.webp differ diff --git a/files/assets/images/emojis/wolfbluey.webp b/files/assets/images/emojis/wolfbluey.webp new file mode 100644 index 000000000..2f12c06e0 Binary files /dev/null and b/files/assets/images/emojis/wolfbluey.webp differ diff --git a/files/assets/images/emojis/wolfcranidos.webp b/files/assets/images/emojis/wolfcranidos.webp new file mode 100644 index 000000000..d58378287 Binary files /dev/null and b/files/assets/images/emojis/wolfcranidos.webp differ diff --git a/files/assets/images/emojis/wolfgrowlith.webp b/files/assets/images/emojis/wolfgrowlith.webp new file mode 100644 index 000000000..bd6ca9455 Binary files /dev/null and b/files/assets/images/emojis/wolfgrowlith.webp differ diff --git a/files/assets/images/emojis/wolfmanectric.webp b/files/assets/images/emojis/wolfmanectric.webp new file mode 100644 index 000000000..ae8e23f3e Binary files /dev/null and b/files/assets/images/emojis/wolfmanectric.webp differ diff --git a/files/assets/images/emojis/wolfpoochyena.webp b/files/assets/images/emojis/wolfpoochyena.webp new file mode 100644 index 000000000..d0f211b31 Binary files /dev/null and b/files/assets/images/emojis/wolfpoochyena.webp differ diff --git a/files/assets/images/emojis/wolfpoochyena2.webp b/files/assets/images/emojis/wolfpoochyena2.webp new file mode 100644 index 000000000..c715ff9f3 Binary files /dev/null and b/files/assets/images/emojis/wolfpoochyena2.webp differ diff --git a/files/assets/images/emojis/wolfsmug.webp b/files/assets/images/emojis/wolfsmug.webp new file mode 100644 index 000000000..91b0150d2 Binary files /dev/null and b/files/assets/images/emojis/wolfsmug.webp differ diff --git a/files/assets/images/emojis/wolftres.webp b/files/assets/images/emojis/wolftres.webp new file mode 100644 index 000000000..0df65c43e Binary files /dev/null and b/files/assets/images/emojis/wolftres.webp differ diff --git a/files/assets/images/hats/Phantom Mask.webp b/files/assets/images/hats/Phantom Mask.webp new file mode 100644 index 000000000..59a5c3593 Binary files /dev/null and b/files/assets/images/hats/Phantom Mask.webp differ diff --git a/files/assets/images/hats/Pink Glitter Accent.webp b/files/assets/images/hats/Pink Glitter Accent.webp new file mode 100644 index 000000000..f69a61e6b Binary files /dev/null and b/files/assets/images/hats/Pink Glitter Accent.webp differ diff --git a/files/assets/images/hats/Spooky Candles (Orange Version).webp b/files/assets/images/hats/Spooky Candles (Orange Version).webp new file mode 100644 index 000000000..8f8b9d791 Binary files /dev/null and b/files/assets/images/hats/Spooky Candles (Orange Version).webp differ diff --git a/files/assets/images/hats/Spooky Candles (in Grey).webp b/files/assets/images/hats/Spooky Candles (in Grey).webp new file mode 100644 index 000000000..b058738ea Binary files /dev/null and b/files/assets/images/hats/Spooky Candles (in Grey).webp differ diff --git a/files/assets/images/hats/Swirly Fall Red Leaves.webp b/files/assets/images/hats/Swirly Fall Red Leaves.webp new file mode 100644 index 000000000..d66f182db Binary files /dev/null and b/files/assets/images/hats/Swirly Fall Red Leaves.webp differ diff --git a/files/assets/images/hats/White Sparkle.webp b/files/assets/images/hats/White Sparkle.webp new file mode 100644 index 000000000..564e0d138 Binary files /dev/null and b/files/assets/images/hats/White Sparkle.webp differ diff --git a/files/assets/images/rDrama/badges/304.webp b/files/assets/images/rDrama/badges/304.webp new file mode 100644 index 000000000..d1ce2f5de Binary files /dev/null and b/files/assets/images/rDrama/badges/304.webp differ diff --git a/files/assets/images/rDrama/badges/305.webp b/files/assets/images/rDrama/badges/305.webp new file mode 100644 index 000000000..5eb0d5368 Binary files /dev/null and b/files/assets/images/rDrama/badges/305.webp differ diff --git a/files/assets/images/rDrama/badges/306.webp b/files/assets/images/rDrama/badges/306.webp new file mode 100644 index 000000000..c318899e3 Binary files /dev/null and b/files/assets/images/rDrama/badges/306.webp differ diff --git a/files/assets/images/rDrama/badges/307.webp b/files/assets/images/rDrama/badges/307.webp new file mode 100644 index 000000000..419349e43 Binary files /dev/null and b/files/assets/images/rDrama/badges/307.webp differ diff --git a/files/assets/images/rDrama/badges/308.webp b/files/assets/images/rDrama/badges/308.webp new file mode 100644 index 000000000..744bd1908 Binary files /dev/null and b/files/assets/images/rDrama/badges/308.webp differ diff --git a/files/assets/images/rDrama/badges/309.webp b/files/assets/images/rDrama/badges/309.webp new file mode 100644 index 000000000..d3bef6616 Binary files /dev/null and b/files/assets/images/rDrama/badges/309.webp differ diff --git a/files/assets/images/rDrama/badges/310.webp b/files/assets/images/rDrama/badges/310.webp new file mode 100644 index 000000000..6faca711a Binary files /dev/null and b/files/assets/images/rDrama/badges/310.webp differ diff --git a/files/assets/images/rDrama/badges/311.webp b/files/assets/images/rDrama/badges/311.webp new file mode 100644 index 000000000..84214a06c Binary files /dev/null and b/files/assets/images/rDrama/badges/311.webp differ diff --git a/files/assets/images/rDrama/badges/312.webp b/files/assets/images/rDrama/badges/312.webp new file mode 100644 index 000000000..04f95700d Binary files /dev/null and b/files/assets/images/rDrama/badges/312.webp differ diff --git a/files/assets/images/rDrama/sidebar/1351.webp b/files/assets/images/rDrama/sidebar/1351.webp new file mode 100644 index 000000000..4ee7dcc2c Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1351.webp differ diff --git a/files/assets/images/rDrama/sidebar/1352.webp b/files/assets/images/rDrama/sidebar/1352.webp new file mode 100644 index 000000000..5f277f90a Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1352.webp differ diff --git a/files/assets/images/rDrama/sidebar/1353.webp b/files/assets/images/rDrama/sidebar/1353.webp new file mode 100644 index 000000000..1ae726c24 Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1353.webp differ diff --git a/files/assets/images/rDrama/sidebar/1354.webp b/files/assets/images/rDrama/sidebar/1354.webp new file mode 100644 index 000000000..7cb1389ed Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1354.webp differ diff --git a/files/assets/images/rDrama/sidebar/1355.webp b/files/assets/images/rDrama/sidebar/1355.webp new file mode 100644 index 000000000..dc4f97a42 Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1355.webp differ diff --git a/files/assets/images/rDrama/sidebar/1356.webp b/files/assets/images/rDrama/sidebar/1356.webp new file mode 100644 index 000000000..dad8c85d5 Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1356.webp differ diff --git a/files/assets/images/rDrama/sidebar/1357.webp b/files/assets/images/rDrama/sidebar/1357.webp new file mode 100644 index 000000000..87d1ace04 Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1357.webp differ diff --git a/files/assets/images/rDrama/sidebar/1358.webp b/files/assets/images/rDrama/sidebar/1358.webp new file mode 100644 index 000000000..379a51875 Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1358.webp differ diff --git a/files/assets/images/rDrama/sidebar/1359.webp b/files/assets/images/rDrama/sidebar/1359.webp new file mode 100644 index 000000000..0443c99ad Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1359.webp differ diff --git a/files/assets/images/rDrama/sidebar/1360.webp b/files/assets/images/rDrama/sidebar/1360.webp new file mode 100644 index 000000000..7bdbda1ca Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1360.webp differ diff --git a/files/assets/images/rDrama/sidebar/1361.webp b/files/assets/images/rDrama/sidebar/1361.webp new file mode 100644 index 000000000..2d6554cd9 Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1361.webp differ diff --git a/files/assets/images/rDrama/sidebar/1362.webp b/files/assets/images/rDrama/sidebar/1362.webp new file mode 100644 index 000000000..b1d13689b Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1362.webp differ diff --git a/files/assets/images/rDrama/sidebar/1363.webp b/files/assets/images/rDrama/sidebar/1363.webp new file mode 100644 index 000000000..b1c27de85 Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1363.webp differ diff --git a/files/assets/images/rDrama/sidebar/1364.webp b/files/assets/images/rDrama/sidebar/1364.webp new file mode 100644 index 000000000..e3d9d54a3 Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1364.webp differ diff --git a/files/assets/images/rDrama/sidebar/1365.webp b/files/assets/images/rDrama/sidebar/1365.webp new file mode 100644 index 000000000..d216279d1 Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1365.webp differ diff --git a/files/assets/images/rDrama/sidebar/1366.webp b/files/assets/images/rDrama/sidebar/1366.webp new file mode 100644 index 000000000..23ed470a9 Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1366.webp differ diff --git a/files/assets/images/rDrama/sidebar/1367.webp b/files/assets/images/rDrama/sidebar/1367.webp new file mode 100644 index 000000000..0007c26c8 Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1367.webp differ diff --git a/files/assets/images/rDrama/sidebar/1368.webp b/files/assets/images/rDrama/sidebar/1368.webp new file mode 100644 index 000000000..8027572b6 Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1368.webp differ diff --git a/files/assets/images/rDrama/sidebar/1369.webp b/files/assets/images/rDrama/sidebar/1369.webp new file mode 100644 index 000000000..7f15e3f0b Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1369.webp differ diff --git a/files/assets/images/rDrama/sidebar/1370.webp b/files/assets/images/rDrama/sidebar/1370.webp new file mode 100644 index 000000000..f68f1ea28 Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1370.webp differ diff --git a/files/assets/images/rDrama/sidebar/1371.webp b/files/assets/images/rDrama/sidebar/1371.webp new file mode 100644 index 000000000..018b73de8 Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1371.webp differ diff --git a/files/assets/images/rDrama/sidebar/1372.webp b/files/assets/images/rDrama/sidebar/1372.webp new file mode 100644 index 000000000..85e110748 Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1372.webp differ diff --git a/files/assets/images/rDrama/sidebar/1373.webp b/files/assets/images/rDrama/sidebar/1373.webp new file mode 100644 index 000000000..9c7026b9e Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1373.webp differ diff --git a/files/assets/images/rDrama/sidebar/1374.webp b/files/assets/images/rDrama/sidebar/1374.webp new file mode 100644 index 000000000..3aa5cbd41 Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1374.webp differ diff --git a/files/assets/images/rDrama/sidebar/1375.webp b/files/assets/images/rDrama/sidebar/1375.webp new file mode 100644 index 000000000..61acc7a1a Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1375.webp differ diff --git a/files/assets/images/rDrama/sidebar/1376.webp b/files/assets/images/rDrama/sidebar/1376.webp new file mode 100644 index 000000000..e4228f516 Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1376.webp differ diff --git a/files/assets/images/rDrama/sidebar/1378.webp b/files/assets/images/rDrama/sidebar/1378.webp new file mode 100644 index 000000000..095cbd04d Binary files /dev/null and b/files/assets/images/rDrama/sidebar/1378.webp differ diff --git a/files/assets/js/admin/apps.js b/files/assets/js/admin/apps.js new file mode 100644 index 000000000..d4a9b7771 --- /dev/null +++ b/files/assets/js/admin/apps.js @@ -0,0 +1,8 @@ +function remove_app(t, url) { + postToast(t, url, + {}, + () => { + t.parentElement.parentElement.parentElement.remove() + } + ); +} diff --git a/files/assets/js/admin/orgies.js b/files/assets/js/admin/orgies.js new file mode 100644 index 000000000..b115f4d53 --- /dev/null +++ b/files/assets/js/admin/orgies.js @@ -0,0 +1,8 @@ +function remove_orgy(t, created_utc) { + postToast(t, `/admin/remove_orgy/${created_utc}`, + {}, + () => { + t.parentElement.parentElement.remove() + } + ); +} diff --git a/files/assets/js/award_modal.js b/files/assets/js/award_modal.js index 14a4be074..e0febed81 100644 --- a/files/assets/js/award_modal.js +++ b/files/assets/js/award_modal.js @@ -92,6 +92,10 @@ function vote(type, id, dir) { let global_price; +const note_section = document.getElementById('note_section') +const gif_button = note_section.querySelector('[title="Add GIF"]') +const giveaward_button = document.getElementById('giveaward') + function pick(kind, price, coins, marseybux) { global_price = price; @@ -99,19 +103,6 @@ function pick(kind, price, coins, marseybux) { coins = parseInt(coins) marseybux = parseInt(marseybux) - const buy = document.getElementById('buy') - - if (kind == "grass" && coins < price) - buy.disabled = true; - else if (kind == "benefactor" && marseybux < price) - buy.disabled = true; - else if (coins+marseybux < price) - buy.disabled = true; - else - buy.disabled = false; - - let ownednum = Number(document.getElementById(`${kind}-owned`).textContent); - document.getElementById('giveaward').disabled = (ownednum == 0); document.getElementById('kind').value=kind; if (document.getElementsByClassName('picked').length > 0) { document.getElementsByClassName('picked')[0].classList.toggle('picked'); @@ -120,11 +111,23 @@ function pick(kind, price, coins, marseybux) { if (kind == "chud") { document.getElementById('phrase_section').classList.remove("d-none") - document.getElementById('note_section').classList.add("d-none") + note_section.classList.add("d-none") } else { document.getElementById('phrase_section').classList.add("d-none") - document.getElementById('note_section').classList.remove("d-none") + note_section.classList.remove("d-none") + } + + if (kind == "emoji") { + if (giveaward_button.dataset.action.startsWith('/award/post/')) + document.getElementById('emoji_behavior_section').classList.remove("d-none") + document.getElementById('note').setAttribute("style", "min-height:35px;max-height:35px;height:35px;min-width:min(300px,80vw)") + gif_button.classList.add('d-none') + } + else { + document.getElementById('emoji_behavior_section').classList.add("d-none") + document.getElementById('note').removeAttribute("style") + gif_button.classList.remove('d-none') } if (kind == "flairlock") { @@ -148,33 +151,18 @@ function pick(kind, price, coins, marseybux) { document.getElementById('note').maxLength = 200; } - document.getElementById('award_price_block').classList.remove('d-none'); - document.getElementById('award_price').textContent = price; -} - -function buy() { - const kind = document.getElementById('kind').value; - url = `/buy/${kind}` - const xhr = createXhrWithFormKey(url); - xhr[0].onload = function() { - let data - try {data = JSON.parse(xhr[0].response)} - catch(e) {console.error(e)} - success = xhr[0].status >= 200 && xhr[0].status < 300; - showToast(success, getMessageFromJsonData(success, data)); - if (success) { - if (kind != "lootbox") - { - document.getElementById('giveaward').disabled=false; - let owned = document.getElementById(`${kind}-owned`) - let ownednum = Number(owned.textContent) + 1; - owned.textContent = ownednum - } - } - }; - - xhr[0].send(xhr[1]); + const ownednum = Number(document.getElementById(`${kind}-owned`).textContent); + if (ownednum) { + document.getElementById('award_price').textContent = `${ownednum} owned`; + giveaward_button.classList.remove('d-none'); + document.getElementById('buyandgiveaward').classList.add('d-none'); + } + else { + document.getElementById('award_price').textContent = `Price: ${price} coins/marseybux`; + giveaward_button.classList.add('d-none'); + document.getElementById('buyandgiveaward').classList.remove('d-none'); + } } function giveaward(t) { @@ -185,14 +173,20 @@ function giveaward(t) { postToast(t, t.dataset.action, { "kind": kind, - "note": document.getElementById(note_id).value + "note": document.getElementById(note_id).value, + "emoji_behavior": document.getElementById("emoji_behavior").value }, () => { let owned = document.getElementById(`${kind}-owned`) - let ownednum = Number(owned.textContent) - 1; - owned.textContent = ownednum - if (ownednum == 0) - document.getElementById('giveaward').disabled=true; + let ownednum = Number(owned.textContent); + if (ownednum) { + ownednum -= 1 + owned.textContent = ownednum + if (ownednum) + document.getElementById('award_price').textContent = `${ownednum} owned`; + else + document.getElementById('award_price').textContent = `Price: ${global_price} coins/marseybux`; + } } ); } diff --git a/files/assets/js/bottom.js b/files/assets/js/bottom.js index c3bd8e6e3..c52e2cc5a 100644 --- a/files/assets/js/bottom.js +++ b/files/assets/js/bottom.js @@ -177,7 +177,7 @@ document.addEventListener("click", function (e) { if (!element) return - if (element instanceof HTMLImageElement && (element.alt.startsWith('![](') || element.classList.contains('in-comment-image') || element.classList.contains('img'))) { + if (element instanceof HTMLImageElement && (element.alt.startsWith('![](') || element.classList.contains('img'))) { expandImage() } else if (element.classList.contains('showmore')) { @@ -189,6 +189,15 @@ document.addEventListener("click", function (e) { return } document.getElementById('giveaward').dataset.action = element.dataset.url + document.getElementById('buyandgiveaward').dataset.action = element.dataset.url + + const currently_picked = document.getElementById("awardModal").getElementsByClassName('picked')[0] + if (currently_picked && currently_picked.id == 'emoji') { + if (element.dataset.url.startsWith('/award/post/')) + document.getElementById('emoji_behavior_section').classList.remove("d-none") + else + document.getElementById('emoji_behavior_section').classList.add("d-none") + } const effect_author_tab = document.getElementById('effect-author-tab') const effect_content_tab = document.getElementById('effect-content-tab') @@ -230,6 +239,9 @@ document.addEventListener("click", function (e) { if (!element.classList.contains("areyousure")) { document.querySelectorAll(".areyousure").forEach(i => { + if (element.dataset.bsTarget == "#awardModal" && i.classList.contains('awardbtn')) + return + i.classList.remove("areyousure") if (i.dataset.oldvalue) diff --git a/files/assets/js/casino/blackjack_screen.js b/files/assets/js/casino/blackjack_screen.js index 213989e9d..68e8ee1dc 100644 --- a/files/assets/js/casino/blackjack_screen.js +++ b/files/assets/js/casino/blackjack_screen.js @@ -185,8 +185,8 @@ function updateCardsetBackgrounds(state, complete = false) { } if(complete){ const wager = state.has_player_split ? state?.wager?.amount * 2 : state?.wager?.amount; - let dealerShows = state.payout > wager ? 'WON': 'LOST'; - if(state.payout === wager) dealerShows = 'PUSHED' + let dealerShows = state.payout < wager ? 'WON': 'LOST'; + if(state.payout === wager || (state.player_doubled_down && state.status === 'PUSHED')) dealerShows = 'PUSHED' cardsets[0]?.classList.add(`blackjack-cardset__${dealerShows}`) } else { diff --git a/files/assets/js/chat.js b/files/assets/js/chat.js index 497227073..6038af0ae 100644 --- a/files/assets/js/chat.js +++ b/files/assets/js/chat.js @@ -124,6 +124,9 @@ socket.on('speak', function(json) { setTimeout(function () { box.scrollTo(0, box.scrollHeight) }, 500); + setTimeout(function () { + box.scrollTo(0, box.scrollHeight) + }, 1000); } }) @@ -160,6 +163,9 @@ function send() { setTimeout(function () { box.scrollTo(0, box.scrollHeight) }, 500); + setTimeout(function () { + box.scrollTo(0, box.scrollHeight) + }, 1000); } } @@ -246,19 +252,15 @@ ta.addEventListener("input", function() { socket.on('typing', function (users){ if (users.length==0){ document.getElementById('typing-indicator').innerHTML = ''; - document.getElementById('loading-indicator').classList.add('d-none'); } else if (users.length==1){ document.getElementById('typing-indicator').innerHTML = ''+users[0]+" is typing..."; - document.getElementById('loading-indicator').classList.remove('d-none'); } else if (users.length==2){ document.getElementById('typing-indicator').innerHTML = ''+users[0]+" and "+users[1]+" are typing..."; - document.getElementById('loading-indicator').classList.remove('d-none'); } else { document.getElementById('typing-indicator').innerHTML = ''+users[0]+", "+users[1]+", and "+users[2]+" are typing..."; - document.getElementById('loading-indicator').classList.remove('d-none'); } }) diff --git a/files/assets/js/comments_v.js b/files/assets/js/comments_v.js index c572674ae..bb724e955 100644 --- a/files/assets/js/comments_v.js +++ b/files/assets/js/comments_v.js @@ -324,6 +324,12 @@ function post_comment(fullname, hide){ remove_dialog(); if (fullname.startsWith('c_')) restore_reply_buttons(fullname) + + if (fullname.startsWith('p_')) { + const viewbtn = document.getElementById('viewbtn') + if (viewbtn) + viewbtn.dataset.ids = viewbtn.dataset.ids.slice(0, -1) + `, ${data['id']}]` + } } else { showToast(false, getMessageFromJsonData(false, data)); @@ -353,4 +359,5 @@ function cancel(fullname) { document.getElementById(`reply-to-${fullname}`).classList.add('d-none') remove_dialog(); restore_reply_buttons(fullname) + close_inline_speed_emoji_modal(); } diff --git a/files/assets/js/core.js b/files/assets/js/core.js index c084af610..6f886e9e2 100644 --- a/files/assets/js/core.js +++ b/files/assets/js/core.js @@ -33,8 +33,12 @@ function createXhrWithFormKey(url, form=new FormData(), method='POST') { } function postToast(t, url, data, extraActionsOnSuccess, extraActionsOnFailure) { - t.disabled = true; - t.classList.add("disabled"); + const is_shop = t.id && t.id.startsWith('buy-') + + if (!is_shop) { + t.disabled = true; + t.classList.add("disabled"); + } let form = new FormData(); if (typeof data === 'object' && data !== null) { @@ -46,7 +50,7 @@ function postToast(t, url, data, extraActionsOnSuccess, extraActionsOnFailure) { xhr[0].onload = function() { const success = xhr[0].status >= 200 && xhr[0].status < 300; - if (!(extraActionsOnSuccess == reload && success)) { + if (!(extraActionsOnSuccess == reload && success && !is_shop)) { t.disabled = false; t.classList.remove("disabled"); } @@ -118,11 +122,11 @@ if (!location.pathname.endsWith('/submit') && !location.pathname.endsWith('/chat const formDOM = targetDOM.parentElement; if (formDOM.id == 'note_section') { - document.getElementById('giveaward').click(); + document.querySelector('.awardbtn:not(.d-none)').click(); return } - if (location.pathname == '/admin/orgy') { + if (location.pathname == '/admin/orgies') { document.getElementById('start-orgy').click(); return } @@ -262,7 +266,9 @@ function areyousure(t) { } function prepare_to_pause(audio) { - for (const e of document.querySelectorAll('video,audio')) { + for (const e of document.querySelectorAll('video,audio')) + { + if (e == audio) continue e.addEventListener('play', () => { if (!audio.paused) audio.pause(); }); @@ -275,11 +281,31 @@ function prepare_to_pause(audio) { }); } +function handle_playing_music(audio) { + audio.addEventListener('play', () => { + localStorage.setItem("playing_music", Date.now()); + addEventListener('beforeunload', () => { + localStorage.setItem("playing_music", 0); + }) + }) + audio.addEventListener('pause', () => { + localStorage.setItem("playing_music", 0); + }) +} + +function playing_music() { + return (Date.now() - localStorage.getItem("playing_music", 0) < 300000) +} + function reload() { location.reload(); } function sendFormXHR(form, extraActionsOnSuccess) { + if (typeof close_inline_speed_emoji_modal === "function") { + close_inline_speed_emoji_modal(); + } + const t = form.querySelector('[type="submit"]') t.disabled = true; t.classList.add("disabled"); @@ -302,10 +328,11 @@ function sendFormXHR(form, extraActionsOnSuccess) { t.classList.remove("disabled"); } - if (xhr.status != 204) { + try { const data = JSON.parse(xhr.response); showToast(success, getMessageFromJsonData(success, data)); } + catch {} if (success && extraActionsOnSuccess) extraActionsOnSuccess(xhr); }; @@ -793,7 +820,7 @@ function handleUploadProgress(e, upload_prog) { } -if (screen_width <= 768) { +if (screen_width < 768) { let object if (gbrowser == 'iphone' && expandImageModal) object = expandImageModal @@ -821,6 +848,12 @@ if (screen_width <= 768) { } } +document.addEventListener('hide.bs.modal', () => { + if (typeof close_inline_speed_emoji_modal === "function") { + close_inline_speed_emoji_modal(); + } +}); + document.querySelectorAll('form').forEach(form => { form.addEventListener('submit', (e) => { if (form.classList.contains('is-submitting')) { diff --git a/files/assets/js/fix_collapse_lines.js b/files/assets/js/fix_collapse_lines.js index f22cd4e73..014dd4147 100644 --- a/files/assets/js/fix_collapse_lines.js +++ b/files/assets/js/fix_collapse_lines.js @@ -15,7 +15,7 @@ function toRGBArray(rgbStr) { const background_color = toRGBArray(getComputedStyle(document.documentElement).getPropertyValue('--background')); -for (const line of document.getElementsByClassName('comment-collapse-desktop')) { +for (const line of document.getElementsByClassName('comment-collapse-line')) { if (line.style.borderColor == 'var(--primary)') continue const line_color = toRGBArray(line.style.borderColor) diff --git a/files/assets/js/orgy_file.js b/files/assets/js/orgy_file.js index 3119e5586..d274da729 100644 --- a/files/assets/js/orgy_file.js +++ b/files/assets/js/orgy_file.js @@ -4,6 +4,7 @@ const break_file = document.getElementById('break-file'); addEventListener("load", () => { orgy_file.play() }); + document.addEventListener('click', () => { if (orgy_file.paused) orgy_file.play(); }, {once : true}); @@ -13,6 +14,11 @@ function add_playing_listener() { const now = Date.now() / 1000; const created_utc = orgy_file.dataset.created_utc orgy_file.currentTime = now - created_utc + if (screen_width < 768) { + const chat_window_height = innerHeight - orgy_file.offsetHeight - 186 + document.getElementById('chat-window').setAttribute('style', `max-height: ${chat_window_height}px !important`) + } + setTimeout(add_waiting_listener, 5000); }, {once : true}); } @@ -23,8 +29,8 @@ orgy_file.addEventListener('pause', () => { }) orgy_file.addEventListener("timeupdate", function(){ - if (break_file.dataset.run == "0" && parseInt(orgy_file.currentTime) == 3000) { - break_file.dataset.run = "1" + if (break_file.dataset.run == "False" && parseInt(orgy_file.currentTime) == 3000) { + break_file.dataset.run = "True" orgy_file.pause(); orgy_file.classList.add('d-none'); break_file.classList.remove('d-none'); @@ -42,3 +48,7 @@ orgy_file.addEventListener("timeupdate", function(){ orgy_file.addEventListener("ended", function(){ location.reload() }); + +function add_waiting_listener() { + orgy_file.addEventListener('waiting', add_playing_listener, {once : true}); +} diff --git a/files/assets/js/profile_song.js b/files/assets/js/profile_song.js index b6d9b1120..54c33c463 100644 --- a/files/assets/js/profile_song.js +++ b/files/assets/js/profile_song.js @@ -1,5 +1,8 @@ -let u_username = document.getElementById('u_username') +const audio = document.getElementById('profile-song') +handle_playing_music(audio) + +let u_username = document.getElementById('u_username') const anthem_button = document.getElementById('toggle-anthem') const anthem_button_mobile = document.getElementById('toggle-anthem-mobile') @@ -19,13 +22,23 @@ function pause_audio(audio) { } } +function play_profile_song() { + if (playing_music()) return + + addEventListener("load", () => { + play_audio(audio); + document.addEventListener('click', (e) => { + if (e.target.id.startsWith("toggle-anthem")) + return + if (audio.paused) play_audio(audio); + }, {once : true}); + + prepare_to_pause(audio) + }) +} + if (u_username) { - u_username = u_username.innerHTML - - let audio = new Audio(`/@${u_username}/song`); - audio.loop = true; - function toggle() { if (audio.paused) { play_audio(audio); @@ -35,14 +48,7 @@ if (u_username) } } - play_audio(audio); - document.addEventListener('click', (e) => { - if (e.target.id.startsWith("toggle-anthem")) - return - if (audio.paused) play_audio(audio); - }, {once : true}); - - prepare_to_pause(audio) + play_profile_song() } else { @@ -53,9 +59,6 @@ else const paused = localStorage.getItem("paused") - let audio = new Audio(`/@${v_username}/song`); - audio.loop = true; - function toggle() { if (audio.paused) { @@ -70,15 +73,6 @@ else } if (!paused) - { - play_audio(audio); - document.addEventListener('click', (e) => { - if (e.target.id.startsWith("toggle-anthem")) - return - if (audio.paused) play_audio(audio); - }, {once : true}); - } - - prepare_to_pause(audio) + play_profile_song() } } diff --git a/files/assets/js/userpage.js b/files/assets/js/userpage.js index e678e6f76..71de74b4e 100644 --- a/files/assets/js/userpage.js +++ b/files/assets/js/userpage.js @@ -4,3 +4,9 @@ function badge_timestamp(t) { t.setAttribute("data-bs-original-title", `${text} ${date.toString()}`); t.removeAttribute("data-onmouseover") } + +addEventListener("load", () => { + const el = document.getElementById("desktopUserBanner") + const style = el.getAttribute("data-style") + el.setAttribute("style", style) +}); diff --git a/files/assets/js/userpage_v.js b/files/assets/js/userpage_v.js index 8a9228c70..c9d83cbc0 100644 --- a/files/assets/js/userpage_v.js +++ b/files/assets/js/userpage_v.js @@ -24,6 +24,7 @@ function updateBux(mobile=false) { } function transferCoins(t, mobile=false) { + close_inline_speed_emoji_modal(); for(let el of document.getElementsByClassName('toggleable')) { el.classList.add('d-none'); @@ -47,6 +48,8 @@ function transferCoins(t, mobile=false) { } function transferBux(t, mobile=false) { + close_inline_speed_emoji_modal(); + for(let el of document.getElementsByClassName('toggleable')) { el.classList.add('d-none'); } diff --git a/files/assets/js/vendor/lite-youtube.js b/files/assets/js/vendor/lite-youtube.js index d4775661d..e4c59a110 100644 --- a/files/assets/js/vendor/lite-youtube.js +++ b/files/assets/js/vendor/lite-youtube.js @@ -5,5 +5,5 @@ this.addEventListener('pointerover',LiteYTEmbed.warmConnections,{once:!0});this. static addPrefetch(kind,url,as){const linkEl=document.createElement('link');linkEl.rel=kind;linkEl.href=url;if(as){linkEl.as=as} document.head.append(linkEl)} static warmConnections(){if(LiteYTEmbed.preconnected)return;LiteYTEmbed.addPrefetch('preconnect','https://www.youtube.com');LiteYTEmbed.addPrefetch('preconnect','https://www.google.com');LiteYTEmbed.addPrefetch('preconnect','https://googleads.g.doubleclick.net');LiteYTEmbed.addPrefetch('preconnect','https://static.doubleclick.net');LiteYTEmbed.preconnected=!0} -addIframe(){if(this.classList.contains('lyt-activated'))return;this.classList.add('lyt-activated');const params=new URLSearchParams(this.getAttribute('params')||[]);params.append('autoplay','1');const iframeEl=document.createElement('iframe');iframeEl.width=560;iframeEl.height=315;iframeEl.sandbox='allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox';iframeEl.title=this.playLabel;iframeEl.allow='accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture';iframeEl.allowFullscreen=!0;iframeEl.src=`https://www.youtube.com/embed/${encodeURIComponent(this.videoId)}?${params.toString()}`;this.append(iframeEl);iframeEl.focus()}} +addIframe(){if(this.classList.contains('lyt-activated'))return;this.classList.add('lyt-activated');const params=new URLSearchParams(this.getAttribute('params')||[]);params.append('autoplay','1');const iframeEl=document.createElement('iframe');iframeEl.width=560;iframeEl.height=315;iframeEl.sandbox='allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox';iframeEl.title=this.playLabel;iframeEl.allow='accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture';iframeEl.allowFullscreen=!0;iframeEl.src=`https://cdpn.io/pen/debug/NWeVNRj?v=${encodeURIComponent(this.videoId)}&${params.toString()}`;this.append(iframeEl);iframeEl.focus()}} customElements.define('lite-youtube',LiteYTEmbed) diff --git a/files/assets/js/view_more.js b/files/assets/js/view_more.js index e7fca62c2..1f7601c12 100644 --- a/files/assets/js/view_more.js +++ b/files/assets/js/view_more.js @@ -4,7 +4,7 @@ function view_more(t, pid, sort, offset) { btn.innerHTML = "Requesting..."; const form = new FormData(); const xhr = new XMLHttpRequest(); - ids = t.dataset.ids.toString().replace(/[\[\] ]/g, '') + ids = t.dataset.ids.replace(/[\[\] ]/g, '') xhr.open("get", `/view_more/${pid}/${sort}/${offset}?ids=${ids}`); xhr.setRequestHeader('xhr', 'xhr'); xhr.onload=function(){ diff --git a/files/assets/subtitles.vtt b/files/assets/subtitles.vtt deleted file mode 100644 index 6327e50db..000000000 --- a/files/assets/subtitles.vtt +++ /dev/null @@ -1,7745 +0,0 @@ -WEBVTT - -00:00:02.000 --> 00:00:07.000 -Downloaded from -YTS.MX - -00:00:08.000 --> 00:00:13.000 -Official YIFY movies site: -YTS.MX - -00:01:13.408 --> 00:01:15.994 -There 's 100,000 streets in this city. - -00:01:17.036 --> 00:01:19.456 -You don't need to know the route. - -00:01:20.039 --> 00:01:22.125 -You give me a time and a place, - -00:01:22.208 --> 00:01:24.544 -I give you a five-minute window. - -00:01:25.170 --> 00:01:28.923 -Anything happens -in that five minutes and I'm yours. - -00:01:29.007 --> 00:01:30.508 -No matter what. - -00:01:31.092 --> 00:01:33.595 -Anything happens a minute -either side of that - -00:01:33.678 --> 00:01:35.597 -and you're on your own. - -00:01:36.347 --> 00:01:38.016 -Do you understand? - -00:01:41.770 --> 00:01:42.854 -Good. - -00:01:45.857 --> 00:01:49.277 -And you won't be able -to reach me on this phone again. - -00:02:21.351 --> 00:02:23.269 -Hey, there you are! - -00:02:23.353 --> 00:02:25.271 -She's down there. - -00:02:25.355 --> 00:02:27.649 -Plain Jane Boring, just like you asked for, - -00:02:27.732 --> 00:02:30.318 -but I dropped in 300 horses on the inside, - -00:02:30.401 --> 00:02:32.195 -she is going to fly. - -00:02:33.279 --> 00:02:34.739 -You look like a zombie, kid. - -00:02:34.823 --> 00:02:36.616 -You getting any sleep? - -00:02:36.699 --> 00:02:41.329 -Can I offer you some -Benzedrine, Dexedrine, caffeine, nicotine? - -00:02:41.412 --> 00:02:43.081 -Oh, you don't smoke. That's right. - -00:02:43.164 --> 00:02:44.582 -Better Off. - -00:02:45.917 --> 00:02:47.418 -There she is! - -00:02:48.628 --> 00:02:53.007 -Chevy Impala, the most popular car -in the State of California. - -00:02:54.008 --> 00:02:56.261 -No one will be looking at you. - -00:04:03.578 --> 00:04:05.496 -...Robert Victor 3. - -00:04:05.580 --> 00:04:09.167 -License 5-1-4. Robert Victor 3... - -00:04:21.930 --> 00:04:25.934 -Code 30 Ringer located -at 421 South Alameda. - -00:04:28.061 --> 00:04:30.313 -Reports of shots fired at Code - -00:04:43.451 --> 00:04:44.911 -Come on. - -00:04:46.120 --> 00:04:48.373 -Where the fuck is he? Come on. - -00:04:50.625 --> 00:04:52.794 -Unit 5, what's your 20? - -00:04:52.877 --> 00:04:55.630 -We are approximately two minutes -from that location. - -00:05:03.388 --> 00:05:05.974 -Come on, man. Where the hell are you? - -00:05:09.811 --> 00:05:11.062 -Come on! - -00:05:13.022 --> 00:05:14.816 -Come on! - -00:05:15.900 --> 00:05:17.735 -Come on! Get in! Get in! Get in! - -00:05:17.819 --> 00:05:19.779 -- Come on, man. -- Go, go, go, go, go! - -00:05:23.241 --> 00:05:24.617 -All units be advised. - -00:05:24.701 --> 00:05:26.160 -Possible vehicle in question. - -00:05:26.244 --> 00:05:28.246 -Late model silver Impala. - -00:05:56.149 --> 00:05:59.485 -1-Adam-3, South Bay at Seventh, clean - -00:06:01.821 --> 00:06:03.448 -Roger; 1-A dam-3. - -00:06:04.949 --> 00:06:07.118 -Requesting air unit support. - -00:06:19.964 --> 00:06:23.676 -Unit 5 to Dispatch, -heading eastbound on Sixth. - -00:06:23.760 --> 00:06:25.678 -Copy that, Unit 5. - -00:06:37.899 --> 00:06:39.567 -Base to Air 3. - -00:06:39.650 --> 00:06:41.402 -Any sign of that silver Impala? - -00:06:42.236 --> 00:06:44.197 -Air 3 to Base. Negative. - -00:06:51.871 --> 00:06:54.832 -Got a visual -heading west on Seventh Street bridge. - -00:06:58.211 --> 00:07:00.838 -Copy Air 3. All units, be advised... - -00:07:25.905 --> 00:07:28.991 -Base, Air 3 here. -We've lost visual on suspect. - -00:07:39.669 --> 00:07:43.089 -Base to Air 3. -Possible gang shooting in progress. - -00:07:43.214 --> 00:07:46.217 -Proceed immediately -to Washington and La Brea. - -00:07:46.634 --> 00:07:48.636 -Roger; Dispatch. I'm out. - -00:08:03.568 --> 00:08:05.653 -All westbound units, be advised. - -00:08:05.736 --> 00:08:08.990 -Suspect last seen -near Seventh Street and Santa Fe. - -00:08:36.559 --> 00:08:38.436 -Dispatch, this is 1-Adam-6. - -00:08:38.769 --> 00:08:41.772 -Possible suspect vehicle -sighted at stoplight. - -00:08:42.023 --> 00:08:43.107 -Stand by. - -00:08:44.150 --> 00:08:45.860 -Roger; Unit 6. - -00:13:02.366 --> 00:13:04.493 -- What floor? -- Fourth. Thanks. - -00:13:48.871 --> 00:13:51.540 -Hey, kid, you know what? - -00:13:56.212 --> 00:13:57.546 -Director wants to see a roll over. - -00:13:57.630 --> 00:13:59.131 -Are you okay with that? - -00:13:59.215 --> 00:14:01.383 -Remember, if you don't feel good, -just abort the shot. - -00:14:01.467 --> 00:14:03.677 -There's no shame in that, all right? - -00:14:03.761 --> 00:14:05.387 -I mean, you're... -You're doubling for the star. - -00:14:05.471 --> 00:14:08.224 -You're not like a day player or anything. - -00:14:08.307 --> 00:14:10.809 -And I got you 500 more, huh. - -00:14:10.893 --> 00:14:12.520 -Of course, we split that. - -00:14:12.603 --> 00:14:14.355 -You okay? Ready to go? - -00:14:14.438 --> 00:14:16.565 -All right. Counting on you! - -00:14:31.247 --> 00:14:32.998 -Excuse me, pal. I just need a minute here. - -00:14:33.082 --> 00:14:36.752 -Before I put you on camera, -I need you to sign this contract. - -00:14:36.835 --> 00:14:38.754 -It just basically -releases liability to the company - -00:14:38.837 --> 00:14:42.049 -in case you die, -get maimed, or seriously injured. - -00:14:42.675 --> 00:14:44.093 -And action! - -00:14:52.142 --> 00:14:54.228 -All right, that's a cut! - -00:14:54.311 --> 00:14:55.938 -Kid! That was fantastic! - -00:14:56.021 --> 00:14:57.731 -Just fantastic. - -00:14:57.815 --> 00:15:00.609 -Okay. How you doing? You all right? - -00:15:00.693 --> 00:15:02.403 -You were good. -You were good. That was perfect. - -00:15:58.751 --> 00:16:01.086 -- You're a monkey. -- No, you're the monkey. - -00:16:01.170 --> 00:16:02.338 -- You're the monkey. -- You're the monkey. - -00:16:02.421 --> 00:16:03.422 -No, you're the monkey. - -00:16:03.505 --> 00:16:05.549 -Hey, tell me one thing. - -00:16:05.633 --> 00:16:07.676 -- I love you. -- I love you. - -00:17:02.815 --> 00:17:04.441 -- Where should I put this? -- In the kitchen. - -00:17:04.566 --> 00:17:05.943 -Thank you. - -00:17:08.278 --> 00:17:09.947 -Just be a second. - -00:17:20.791 --> 00:17:21.959 -Scary. - -00:17:25.796 --> 00:17:27.798 -Hey, you want a toothpick? - -00:17:34.304 --> 00:17:36.223 -You want a glass of water? - -00:17:36.306 --> 00:17:37.391 -Okay. - -00:17:48.318 --> 00:17:49.528 -Thanks. - -00:17:53.866 --> 00:17:55.868 -So, you just moved to LA? - -00:17:57.327 --> 00:17:59.538 -No, I've been here for a while. - -00:18:00.414 --> 00:18:02.207 -You're just new here? - -00:18:08.881 --> 00:18:10.966 -That's Benicio's father. - -00:18:12.676 --> 00:18:14.303 -Where is he? - -00:18:15.304 --> 00:18:16.847 -He's in prison. - -00:18:20.100 --> 00:18:21.643 -What do you do? - -00:18:24.188 --> 00:18:25.439 -I drive. - -00:18:27.608 --> 00:18:29.359 -Like a limo driver? - -00:18:30.360 --> 00:18:31.904 -No, like, for movies. - -00:18:34.364 --> 00:18:37.576 -You mean, all the car chases and stuff? - -00:18:37.659 --> 00:18:38.827 -Yeah. - -00:18:39.703 --> 00:18:41.413 -Is that dangerous? - -00:18:51.215 --> 00:18:52.966 -It's only part-time. - -00:18:53.926 --> 00:18:56.136 -Mostly I work at a garage. - -00:18:56.220 --> 00:18:57.429 -Where? - -00:18:57.513 --> 00:18:59.139 -Reseda Boulevard. - -00:19:07.940 --> 00:19:09.316 -I gotta go. - -00:19:11.318 --> 00:19:12.402 -Okay. - -00:19:14.905 --> 00:19:16.365 -Thanks for the water. - -00:19:16.448 --> 00:19:17.950 -- Say bye. -- Bye. - -00:19:56.655 --> 00:19:58.156 -Mr. Rose, your food, sir. - -00:19:58.240 --> 00:19:59.283 -Okay. - -00:19:59.366 --> 00:20:02.494 -Chicken chow mein and some Peking duck. - -00:20:03.161 --> 00:20:04.788 -Okay. Where are the chopsticks? - -00:20:04.872 --> 00:20:07.291 -Oh, you know. The guy just... - -00:20:07.374 --> 00:20:08.750 -Go get them. Go get them. - -00:20:09.042 --> 00:20:11.837 -I don't want that. -I don't want that. You eat it. - -00:20:12.170 --> 00:20:14.381 -Chopsticks and a fortune cookie. - -00:20:14.464 --> 00:20:16.383 -Put out the fucking cigarette. I'm eating. - -00:20:17.342 --> 00:20:18.343 -Sorry. - -00:20:19.261 --> 00:20:20.262 -Whats the matter with you? - -00:20:20.345 --> 00:20:21.638 -I'm just... - -00:20:21.930 --> 00:20:24.600 -What happened to all the ashtrays -in this town? - -00:20:24.683 --> 00:20:26.476 -You run a perfectly good business. - -00:20:26.560 --> 00:20:28.437 -I don't know why you want to change now. - -00:20:28.812 --> 00:20:31.773 -You know how much -my business made last year? - -00:20:31.857 --> 00:20:33.442 -Thirty grand. - -00:20:33.525 --> 00:20:35.277 -I can build a car in six months - -00:20:35.360 --> 00:20:38.196 -and in six seconds, -these jerks write it off as a stunt - -00:20:38.280 --> 00:20:39.948 -that won't even make it into the movie. - -00:20:41.158 --> 00:20:44.411 -See, all I need is a hard used stock car. - -00:20:44.494 --> 00:20:45.704 -That's all. - -00:20:45.787 --> 00:20:49.625 -And I figure we start off with small town -circuit and we work our way up. - -00:20:49.958 --> 00:20:52.753 -And once we get to the show, -we're talking millions. - -00:20:52.836 --> 00:20:54.129 -- I have the chopsticks, sir. -- Yeah. - -00:20:54.212 --> 00:20:55.505 -Where's the cookies? - -00:20:55.589 --> 00:20:58.383 -- You know, I... -- Forget it. Forget it. - -00:20:59.343 --> 00:21:01.720 -So, you still haven't given me a number. - -00:21:01.803 --> 00:21:03.138 -All right. - -00:21:03.555 --> 00:21:05.515 -$430,000. - -00:21:07.225 --> 00:21:08.894 -Mr. Rose, I wouldn't come to you with this - -00:21:08.977 --> 00:21:11.605 -unless I was absolutely sure about it. - -00:21:11.688 --> 00:21:13.649 -How can you be sure, Shannon? - -00:21:13.732 --> 00:21:16.944 -What do you got -that the big professional race teams don't? - -00:21:19.112 --> 00:21:20.405 -I got the driver. - -00:21:20.781 --> 00:21:23.116 -You just told me they had -half a dozen drivers. - -00:21:23.200 --> 00:21:24.576 -Not like this one. - -00:21:25.077 --> 00:21:26.912 -This kid is special. - -00:21:26.995 --> 00:21:28.288 -I've been working with him for a while. - -00:21:28.372 --> 00:21:30.499 -I've never seen anything like it. - -00:21:30.916 --> 00:21:32.459 -If I had the money, I'd back him myself. - -00:21:32.876 --> 00:21:35.003 -Yeah, but you don't have the money. - -00:21:36.046 --> 00:21:39.383 -Mr. Rose, you put this -kid behind the wheel, - -00:21:40.133 --> 00:21:41.927 -there's nothing he can't do. - -00:21:42.594 --> 00:21:45.097 -There's money here. You can't lose. - -00:21:45.889 --> 00:21:48.058 -Fuck you eating chink food -in my fucking restaurant? - -00:21:48.225 --> 00:21:50.769 -What's a Jew doing running a pizzeria? - -00:21:51.436 --> 00:21:53.230 -You remember Shannon. - -00:21:56.566 --> 00:21:59.611 -Take a fucking hike. -I want to talk to my partner. - -00:22:02.239 --> 00:22:04.282 -I'm just fucking with you. - -00:22:04.908 --> 00:22:07.327 -How you doing, Shannon? -How's the fucking leg? - -00:22:08.036 --> 00:22:09.579 -I paid my debt. - -00:22:11.248 --> 00:22:14.501 -I'll think about it. Okay? - -00:22:14.584 --> 00:22:16.378 -But I want to meet the kid first. - -00:22:17.004 --> 00:22:18.630 -That's all I ask. - -00:22:30.809 --> 00:22:33.437 -Come on, I want you to meet somebody. - -00:22:33.520 --> 00:22:35.522 -And whatever you do like about the car, -don't say anything. - -00:22:35.605 --> 00:22:37.899 -I want to drive the price -down a little bit. - -00:22:37.983 --> 00:22:40.736 -Kid, I want you to meet Mr. Bernie Rose. - -00:22:41.403 --> 00:22:43.280 -Nice to meet YOU. - -00:22:48.326 --> 00:22:50.495 -My hands are a little dirty. - -00:22:51.288 --> 00:22:52.706 -So are mine. - -00:22:57.085 --> 00:22:58.962 -Good driving out there. - -00:22:59.963 --> 00:23:01.173 -Thanks. - -00:23:03.633 --> 00:23:05.010 -He's a good kid. - -00:23:05.093 --> 00:23:07.637 -So, what do you think? Do we get the 400? - -00:23:09.014 --> 00:23:11.641 -I'll give you 300 for 70%. - -00:23:14.644 --> 00:23:15.729 -Done. - -00:23:17.856 --> 00:23:19.274 -Right. Good. - -00:23:20.692 --> 00:23:22.944 -You won't be sorry. - -00:23:28.408 --> 00:23:29.951 -- I'm Shannon. -- Hi. Irene. - -00:23:30.035 --> 00:23:31.578 -Irene. How can I help you? - -00:23:31.870 --> 00:23:33.080 -It just broke down. - -00:23:33.163 --> 00:23:34.790 -Just broke down. Just like that. - -00:23:34.873 --> 00:23:36.208 -- You want me to take a look at it? -- Yes, please. - -00:23:36.291 --> 00:23:37.876 -All right. - -00:23:37.959 --> 00:23:39.920 -We got all our bays full. - -00:23:40.003 --> 00:23:42.672 -Hey, pal, just drop it down here. -We'll push it in, all right? - -00:23:42.923 --> 00:23:45.801 -We want to push her into number three. - -00:23:45.884 --> 00:23:48.428 -- The car, not you. -- Good. - -00:23:48.512 --> 00:23:50.055 -- Hi. -- Hi. - -00:23:51.765 --> 00:23:53.141 -You two know each other? - -00:23:53.225 --> 00:23:55.060 -Don't. - -00:23:55.143 --> 00:23:56.770 -- Look at that. -- We're neighbors. - -00:23:56.853 --> 00:23:59.856 -Neighbors? Very good. -Well, we'll try to be neighborly too. - -00:24:21.044 --> 00:24:22.295 -You blinked. - -00:24:22.796 --> 00:24:23.880 -What? - -00:24:24.840 --> 00:24:27.551 -- Can I call a cab from here? -- Yeah. Sure. - -00:24:28.552 --> 00:24:29.803 -What am I talking about? - -00:24:30.971 --> 00:24:32.806 -You and the kid are neighbors, right? - -00:24:32.889 --> 00:24:34.599 -- He can take you home. -- No. - -00:24:34.683 --> 00:24:37.477 -- I'd feel bad. -- No, no. Don't even think twice about it. - -00:24:37.561 --> 00:24:40.772 -He'd be happy to do it. He's a good guy. - -00:24:41.982 --> 00:24:45.193 -You know, he walked into my shop here -about five or six years ago. - -00:24:46.069 --> 00:24:47.237 -Right out of the blue. - -00:24:47.320 --> 00:24:49.156 -Asking for a job. - -00:24:49.239 --> 00:24:52.659 -So I put him to the test -to see what he could do. - -00:24:52.742 --> 00:24:54.035 -- The kid's amazing. -- Yeah. - -00:24:54.494 --> 00:24:56.288 -So, I hire him on the spot. - -00:24:57.914 --> 00:25:00.167 -At about half the wages I normally pay. - -00:25:00.250 --> 00:25:01.459 -He didn't blink an eye. - -00:25:02.294 --> 00:25:05.630 -Hey, kid, -come over here for a second, will you? - -00:25:05.714 --> 00:25:08.967 -And I have been exploiting him ever since. - -00:25:10.886 --> 00:25:12.345 -Don't tell him. - -00:25:12.929 --> 00:25:15.932 -Looks like we have -a bigger problem than I thought. - -00:25:16.016 --> 00:25:19.269 -And we're going to have -to keep the car here for a few days. - -00:25:19.352 --> 00:25:23.231 -So I offered your services -to take Benicio and Irene home. - -00:25:23.315 --> 00:25:24.774 -That be okay? - -00:25:27.611 --> 00:25:28.945 -- Yeah, sure. -- Yeah. - -00:25:31.781 --> 00:25:34.784 -I don't have wheels on my car. - -00:25:35.035 --> 00:25:36.203 -Okay. - -00:25:36.286 --> 00:25:38.205 -It's one thing you should know about me. - -00:25:38.288 --> 00:25:39.289 -Well, put the tires on. - -00:25:39.372 --> 00:25:41.625 -- You got five minutes? -- Yeah. - -00:26:04.606 --> 00:26:06.066 -Hey, do you want to see something? - -00:26:09.653 --> 00:26:10.779 -Yeah. - -00:26:14.282 --> 00:26:15.367 -Okay. - -00:28:11.191 --> 00:28:13.443 -That was good. - -00:28:13.526 --> 00:28:15.278 -He had a good time. - -00:28:23.787 --> 00:28:24.996 -Me 1200. - -00:28:32.087 --> 00:28:35.006 -Sorry if I put you -on the spot showing up like that. - -00:28:35.090 --> 00:28:36.424 -It's okay. - -00:29:00.281 --> 00:29:02.826 -I'm not doing anything this weekend. - -00:29:07.122 --> 00:29:09.457 -If you want a ride or something. - -00:30:43.927 --> 00:30:46.638 -Don't worry about her bumps and bruises, -that's just fiberglass. - -00:30:46.721 --> 00:30:48.097 -That's easily replaceable. - -00:30:48.640 --> 00:30:51.351 -Put a coat of paint on there, -some sponsor decals. - -00:30:51.434 --> 00:30:53.686 -Look at the tread -on the tire's still good, huh? - -00:30:53.770 --> 00:30:55.355 -We're in business. - -00:30:56.022 --> 00:30:58.858 -We paid 300 fucking grand -for this piece of shit? - -00:30:58.942 --> 00:31:02.028 -I paid for it. Out of my own pocket. - -00:31:02.111 --> 00:31:03.655 -This is just the shell. - -00:31:03.905 --> 00:31:06.115 -It's the inside that -counts, not the outside. - -00:31:06.199 --> 00:31:07.742 -- Right, Shannon? -- You are correct, sir. - -00:31:07.825 --> 00:31:11.204 -Fuck that shit. I pay 300 for something, -I want everybody to fucking see it. - -00:31:11.287 --> 00:31:13.748 -Of course you do. - -00:31:13.831 --> 00:31:15.208 -Now, this. - -00:31:15.375 --> 00:31:19.671 -That is one motherfucking -fine-ass pussy mobile, motherfucker. - -00:31:20.129 --> 00:31:21.214 -Damn! - -00:31:21.881 --> 00:31:23.675 -Shannon, sell him the car. - -00:31:24.300 --> 00:31:27.554 -He wouldn't be able -to find pussy in a whorehouse. - -00:31:27.637 --> 00:31:31.474 -You Know what? -This oar will even make you good looking. - -00:31:31.641 --> 00:31:32.934 -I'm already good looking, pal. - -00:31:33.017 --> 00:31:34.227 -How's it going? - -00:31:37.647 --> 00:31:39.524 -When's our first race? - -00:31:41.276 --> 00:31:42.860 -Pretty soon. - -00:31:43.903 --> 00:31:45.530 -You gonna be ready? - -00:31:47.282 --> 00:31:48.616 -I hope so. - -00:31:48.700 --> 00:31:50.952 -"I hope so." - -00:31:51.035 --> 00:31:54.330 -Hey, no false modesty. -I got a lot of money in this. - -00:31:56.082 --> 00:31:58.459 -Did Shannon ever tell you now we met? - -00:32:00.086 --> 00:32:01.170 -No. - -00:32:01.254 --> 00:32:03.006 -I used to produce movies. - -00:32:03.089 --> 00:32:04.507 -In the '8Os. - -00:32:04.591 --> 00:32:07.760 -Kind of like action films. Sexy stuff. - -00:32:07.844 --> 00:32:09.929 -One critic called them European. - -00:32:10.013 --> 00:32:12.140 -I thought they were shit. - -00:32:12.223 --> 00:32:15.977 -Anyway, he arranged all the cars for me. -Did all the stunts. - -00:32:16.060 --> 00:32:18.021 -I liked him. I liked having him around. - -00:32:18.146 --> 00:32:20.523 -Even though -he overcharged the shit out of me. - -00:32:22.108 --> 00:32:23.985 -His next business venture, - -00:32:24.068 --> 00:32:26.613 -he got involved with -some of Nine's friends. - -00:32:26.696 --> 00:32:29.073 -They didn't go for the overcharging bit. - -00:32:29.157 --> 00:32:31.367 -They broke his pelvis. - -00:32:31.451 --> 00:32:33.453 -He's never had a lot of luck. - -00:32:35.580 --> 00:32:36.706 -The reason I'm telling you this - -00:32:36.789 --> 00:32:39.500 -is that he has a lot invested in you. - -00:32:39.584 --> 00:32:41.794 -And so do I. - -00:32:41.878 --> 00:32:44.339 -So anything you need, you call me. - -00:32:45.173 --> 00:32:46.883 -We're a team now. - -00:32:49.385 --> 00:32:50.928 -I'm excited. - -00:32:51.012 --> 00:32:53.723 -Nino, let's get the fuck out of here. - -00:33:09.572 --> 00:33:11.741 -- Is he a bad guy? -- Yeah. - -00:33:12.617 --> 00:33:14.786 -How can you tell? - -00:33:14.869 --> 00:33:17.872 -Because he's a shark. - -00:33:18.915 --> 00:33:20.291 -There's no good sharks? - -00:33:20.375 --> 00:33:23.294 -No. I mean, just look at him. - -00:33:24.504 --> 00:33:27.048 -Does he look like a good guy to you? - -00:33:28.424 --> 00:33:29.592 -- Hi. -- How are you? - -00:33:29.717 --> 00:33:31.719 -- Good. How are you? -- Good. - -00:33:36.391 --> 00:33:37.892 -This is Cindy. - -00:33:39.602 --> 00:33:40.687 -Hi. - -00:34:19.475 --> 00:34:21.686 -That was my husband's lawyer. - -00:34:22.645 --> 00:34:24.731 -He's coming home in a week. - -00:35:48.272 --> 00:35:54.111 -We're here celebrating, -but it's a shameful thing what I did. - -00:35:56.280 --> 00:36:00.076 -And I have a lot of making up to do -to everyone. - -00:36:06.082 --> 00:36:08.876 -But second chances are rare. - -00:36:08.960 --> 00:36:10.127 -Right? - -00:36:11.295 --> 00:36:13.840 -And that's worth celebrating. Right? - -00:36:16.008 --> 00:36:20.346 -So I want to make a toast -to that lady right there. - -00:36:21.764 --> 00:36:23.516 -Thanks for staying. - -00:36:23.975 --> 00:36:25.643 -CD:3 -?5. - -00:37:41.594 --> 00:37:42.678 -Hey. - -00:37:44.639 --> 00:37:45.681 -Hi. - -00:37:53.648 --> 00:37:55.524 -Sorry about the noise. - -00:37:59.195 --> 00:38:01.405 -I was going to call the cops. - -00:38:03.699 --> 00:38:05.368 -I wish you would. - -00:38:08.913 --> 00:38:09.914 -You're getting heavier. - -00:38:12.083 --> 00:38:13.417 -- Hey. -- Hey. - -00:38:15.878 --> 00:38:17.213 -Hey. - -00:38:19.382 --> 00:38:20.883 -How you doing? - -00:38:21.258 --> 00:38:24.470 -- Hi. -- This guy's been telling me a lot about you. - -00:38:25.388 --> 00:38:28.432 -Says you been coming around, -helping out a lot. - -00:38:29.141 --> 00:38:31.811 -Yeah? Helping out? Is that right? - -00:38:33.354 --> 00:38:34.855 -Is that right? - -00:38:38.067 --> 00:38:41.070 -That's very nice. -That's nice of you. Thank you. - -00:38:41.153 --> 00:38:42.697 -You're welcome. - -00:38:46.075 --> 00:38:48.035 -You drive for the movies? - -00:38:49.078 --> 00:38:50.204 -Yeah. - -00:38:51.789 --> 00:38:54.500 -- I can take that. -- No, no, no. I got it. - -00:38:57.920 --> 00:38:59.672 -Let Mommy talk to her friend. - -00:39:01.215 --> 00:39:02.425 -Come on. - -00:39:21.318 --> 00:39:22.820 -Have a good night. - -00:40:00.316 --> 00:40:02.526 -You're Shannon's buddy, right? - -00:40:04.653 --> 00:40:06.322 -We met last year. - -00:40:07.823 --> 00:40:11.118 -You drove me -and my brother back from Palm Springs. - -00:40:14.497 --> 00:40:16.540 -We hired another wheelman. - -00:40:16.624 --> 00:40:20.461 -I spent six months in jail. -My brother, he got himself Killed. - -00:40:24.882 --> 00:40:26.008 -I got this sweet job coming up. - -00:40:26.092 --> 00:40:27.927 -How about this? - -00:40:28.010 --> 00:40:29.762 -You shut your mouth. - -00:40:29.845 --> 00:40:33.933 -Or I'll kick your teeth down your throat -and I'll shut it for you. - -00:40:41.023 --> 00:40:42.900 -Nice seeing you again. - -00:41:59.435 --> 00:42:01.645 -Come on, it's okay. - -00:42:01.729 --> 00:42:05.608 -Come here. Don't be scared. - -00:42:09.403 --> 00:42:11.280 -Don't tell Mommy, okay? - -00:42:13.616 --> 00:42:16.243 -Okay? It's a secret between the boys. - -00:42:18.662 --> 00:42:19.914 -Fuck me. - -00:43:19.890 --> 00:43:21.392 -Who were they? - -00:43:22.810 --> 00:43:25.896 -What the fuck are you going to do? -You're gonna go beat them up for me? - -00:43:26.188 --> 00:43:27.731 -Huh, stunt guy? - -00:43:28.691 --> 00:43:31.694 -Why the fuck do you want to know -who they are? - -00:43:43.580 --> 00:43:45.666 -There are some guys -that want me to do a job for them - -00:43:45.749 --> 00:43:47.835 -and I'm not going to do it. - -00:43:48.877 --> 00:43:50.629 -That's who they are. - -00:43:51.839 --> 00:43:53.382 -What's the job? - -00:43:54.717 --> 00:43:57.636 -They want me -to rob a pawnshop in the Valley. - -00:43:59.346 --> 00:44:00.764 -Why? - -00:44:00.848 --> 00:44:03.892 -'Cause I owe them some protection money -from when I was inside. - -00:44:03.976 --> 00:44:05.602 -It's 2,000 bucks. - -00:44:06.520 --> 00:44:09.398 -But as soon as I got out, it's 5,000 bucks. - -00:44:09.481 --> 00:44:12.276 -No, actually, it's $10,000. $20,000. - -00:44:12.359 --> 00:44:15.738 -Tomorrow I don't know -what the fuck it's going to be. - -00:44:17.740 --> 00:44:19.950 -What are you going to do? - -00:44:20.034 --> 00:44:22.077 -That's a really good question. - -00:44:24.997 --> 00:44:28.917 -They said they were going -to come after Benicio and Irene next. - -00:44:50.606 --> 00:44:51.857 -You okay? - -00:44:53.650 --> 00:44:55.778 -You want something to drink? - -00:44:59.406 --> 00:45:01.408 -What is it you got there? - -00:45:03.911 --> 00:45:05.245 -Can I see? - -00:45:18.675 --> 00:45:20.969 -One of those men gave you that? - -00:45:22.805 --> 00:45:24.973 -They told me not to lose it. - -00:45:29.520 --> 00:45:31.897 -You want me to keep that for you? - -00:45:31.980 --> 00:45:33.107 -Okay. - -00:45:58.382 --> 00:45:59.842 -How's Benice? - -00:46:00.759 --> 00:46:01.844 -Good. - -00:46:05.514 --> 00:46:07.015 -You just saying that? - -00:46:07.099 --> 00:46:08.308 -No. - -00:46:11.270 --> 00:46:12.896 -What do you mean? - -00:46:15.649 --> 00:46:19.987 -I saw that Standard was in an accident. - -00:46:21.113 --> 00:46:22.197 -Yeah. - -00:46:25.868 --> 00:46:27.369 -What happened? - -00:46:31.373 --> 00:46:32.875 -He got beat up. - -00:46:37.087 --> 00:46:38.172 -Why? - -00:46:39.715 --> 00:46:41.300 -Just drunk kids. - -00:46:53.562 --> 00:46:55.397 -You should come over. - -00:46:58.066 --> 00:47:00.194 -You should come and see him. - -00:47:06.992 --> 00:47:09.703 -You want to... You want to hear a story? - -00:47:09.786 --> 00:47:11.497 -Do you want to hear -how Mommy and me met? - -00:47:11.580 --> 00:47:14.333 -- Yeah. -- Yeah? Okay. - -00:47:16.251 --> 00:47:20.130 -We were at a party. -And she was 19 years old. - -00:47:20.214 --> 00:47:21.340 -Seventeen. - -00:47:21.423 --> 00:47:22.674 -- You weren't 17. -- I was. - -00:47:23.258 --> 00:47:25.135 -- Wow. So it was illegal? -- Yeah. - -00:47:27.679 --> 00:47:32.851 -All right. So I illegally walked -over to a 17-year-old girl. - -00:47:33.268 --> 00:47:36.271 -And I walk up and I say, “Hello, Miss. - -00:47:37.439 --> 00:47:39.650 -"What is your name?" - -00:47:39.733 --> 00:47:42.361 -And she didn't say anything. -And then I said... - -00:47:42.444 --> 00:47:44.947 -“Well, my name is Standard Gabriel.” - -00:47:46.114 --> 00:47:47.282 -Then what did you say? - -00:47:52.788 --> 00:47:54.456 -I said... - -00:47:55.499 --> 00:47:57.751 -"Where is the deluxe version?" - -00:48:03.215 --> 00:48:05.092 -She's good, man. - -00:48:05.676 --> 00:48:07.511 -Sharp. - -00:48:07.594 --> 00:48:09.805 -Man. It killed me. - -00:48:13.433 --> 00:48:15.769 -And then a year later, you popped out, man. - -00:48:21.984 --> 00:48:24.278 -It was the best day of my life. - -00:49:08.864 --> 00:49:10.907 -If I drive for you, you get your money. - -00:49:10.991 --> 00:49:13.118 -You tell me where we start, -where we're going, - -00:49:13.201 --> 00:49:14.494 -where we're going afterwards. - -00:49:14.578 --> 00:49:17.331 -I give you five minutes when we get there. - -00:49:17.414 --> 00:49:19.583 -Anything happens in that five minutes, -and I'm yours. - -00:49:19.666 --> 00:49:20.959 -No matter what. - -00:49:21.043 --> 00:49:24.171 -Anything a minute on either side of that -and you're on your own. - -00:49:24.254 --> 00:49:26.423 -I don't sit in while -you're running it down. - -00:49:26.548 --> 00:49:28.300 -I don't carry a gun. - -00:49:28.383 --> 00:49:29.635 -I drive. - -00:49:30.636 --> 00:49:32.554 -You look like you're hard to work with. - -00:49:33.722 --> 00:49:36.099 -Not if we understand each other. - -00:49:36.725 --> 00:49:38.018 -What's to understand? - -00:49:38.685 --> 00:49:40.270 -I can't do this thing alone. - -00:49:40.395 --> 00:49:42.981 -- You got Blanche. -- Come on, man. - -00:49:45.108 --> 00:49:47.319 -She's beautiful. Look at her. - -00:49:49.363 --> 00:49:52.240 -What the fuck you rolling your eyes at for? - -00:49:53.950 --> 00:49:55.243 -You know what, get the fuck out of here. - -00:49:55.327 --> 00:49:59.414 -Get up! Standard, take her -with you and go get her a fucking Coke! - -00:50:06.088 --> 00:50:08.090 -Okay, here's the deal. - -00:50:09.675 --> 00:50:11.593 -This much for Blanche, - -00:50:13.095 --> 00:50:16.098 -this much for that asshole, -minus what he owes me, - -00:50:17.599 --> 00:50:19.935 -and this much for you. - -00:50:23.772 --> 00:50:25.565 -You still interested? - -00:50:27.818 --> 00:50:30.112 -Good. Anything else? - -00:50:31.446 --> 00:50:34.241 -When you get your money, his debt's paid. - -00:50:35.283 --> 00:50:36.910 -He's out for good. - -00:50:36.993 --> 00:50:39.705 -And you never go near his family again. - -00:50:40.372 --> 00:50:41.915 -You understand? - -00:50:46.461 --> 00:50:47.796 -I'm here with my family. - -00:50:48.797 --> 00:50:50.006 -And my new friend. - -00:50:51.174 --> 00:50:52.384 -And... - -00:50:53.635 --> 00:50:55.429 -Toast to the future. - -00:50:57.806 --> 00:50:59.307 -To our future. - -00:51:19.119 --> 00:51:20.162 -Hey. - -00:51:23.915 --> 00:51:26.126 -I'll see you in five minutes. - -00:51:32.007 --> 00:51:33.383 -I'll see you in four. - -00:54:01.448 --> 00:54:02.574 -Oh, my... - -00:54:38.318 --> 00:54:39.402 -Shit! - -00:54:41.404 --> 00:54:42.447 -Oh, my God! - -00:56:12.620 --> 00:56:15.457 -How much did Cook say -we were going to get? - -00:56:18.626 --> 00:56:20.003 -Forty grand. - -00:56:28.595 --> 00:56:29.929 -Stay here. - -00:56:49.365 --> 00:56:52.285 -When was -the last time you saw your husband? - -00:56:55.163 --> 00:56:57.290 -Can you answer the question? - -00:56:59.292 --> 00:57:00.460 -Ma'am. - -00:57:06.925 --> 00:57:08.051 -Hello? - -00:57:08.134 --> 00:57:10.136 -Benicio? Is that you? - -00:57:10.220 --> 00:57:11.471 -Yeah. - -00:57:11.554 --> 00:57:14.432 -I Hey. -- Hi. - -00:57:14.516 --> 00:57:16.518 -Is your mother there? - -00:57:16.601 --> 00:57:20.688 -She's sitting down talking to the police. - -00:57:21.856 --> 00:57:24.818 -Okay, just tell her -I'm going to call her back, okay? - -00:57:24.901 --> 00:57:26.361 -Okay, bye. - -00:57:29.614 --> 00:57:32.659 -In related news, -an attempted robbery turned tragic today - -00:57:32.742 --> 00:57:35.995 -when the owner of a local pawnshop -opened fire on an intruder. - -00:57:36.246 --> 00:57:38.623 -The armed robber -was pronounced dead at the scene. - -00:57:38.706 --> 00:57:42.961 -He has been identified as Standard Gabriel -of Echo Park, Los Angeles. - -00:57:43.044 --> 00:57:45.547 -Other details are unclean -but the owner of the pawnshop - -00:57:45.630 --> 00:57:48.216 -told reporters that Gabriel acted alone - -00:57:48.299 --> 00:57:50.093 -and that no money had been stolen. - -00:57:50.969 --> 00:57:54.639 -In other news, -four high school athletes were arrested... - -00:58:14.075 --> 00:58:16.744 -If he saw you take the money - -00:58:17.162 --> 00:58:19.414 -and he saw you get in the car, - -00:58:21.499 --> 00:58:23.501 -then why didn't he say anything? - -00:58:25.461 --> 00:58:27.005 -I have no idea. - -00:58:38.558 --> 00:58:41.561 -Did you have any idea -there'd be a second car? - -00:58:46.441 --> 00:58:48.651 -I already told you everything. - -00:58:54.282 --> 00:58:57.869 -Now, you just got a little -boy's father killed. - -00:58:57.952 --> 00:59:00.622 -And you almost got us killed. - -00:59:00.705 --> 00:59:02.373 -And now you're lying to me. - -00:59:03.416 --> 00:59:05.710 -So, how about this? - -00:59:05.793 --> 00:59:10.256 -From now on, -every word out of your mouth is the truth. - -00:59:12.258 --> 00:59:14.260 -Or I'm going to hurt you. - -00:59:15.595 --> 00:59:17.263 -Do you understand? - -00:59:18.473 --> 00:59:20.600 -Now what did Cook tell you? - -00:59:21.768 --> 00:59:24.562 -He said there'd be another -car to hold us up, - -00:59:24.646 --> 00:59:26.564 -but he didn't say anything -about all this money. - -00:59:26.648 --> 00:59:29.901 -He didn't say anything -about anyone getting killed. - -00:59:30.985 --> 00:59:33.029 -You were going to rip us off? - -00:59:39.535 --> 00:59:41.329 -What's his real name? - -00:59:41.955 --> 00:59:44.374 -He says it's Chris, but -I just call him Cook. - -00:59:49.254 --> 00:59:52.715 -You're going to take me to him right now. - -00:59:54.801 --> 00:59:56.469 -Do you understand? - -00:59:56.719 --> 00:59:58.096 -Yes. - -01:02:54.522 --> 01:02:55.857 -Easy. Easy. - -01:03:10.371 --> 01:03:12.623 -What did you do with the cash? - -01:03:15.042 --> 01:03:16.335 -'Cause I could keep it safe for you... - -01:03:16.419 --> 01:03:18.296 -Will you just stop it? - -01:03:24.510 --> 01:03:27.221 -This guy Cook, does he have a real name? - -01:03:28.389 --> 01:03:29.557 -Chris. - -01:03:31.434 --> 01:03:32.602 -Maybe. - -01:03:34.937 --> 01:03:37.690 -I'll ask Bernie. See if he knows him. - -01:03:39.984 --> 01:03:41.486 -Jesus, I can't.. - -01:03:41.569 --> 01:03:44.280 -I can't stop thinking -about what we could do with all that dough. - -01:03:44.363 --> 01:03:46.532 -- Will you just stop? -- All right. - -01:03:46.616 --> 01:03:48.701 -A lot of guys mess around -with married women, - -01:03:48.784 --> 01:03:50.870 -but you're the only one I know -who robs a joint - -01:03:50.953 --> 01:03:53.289 -just to pay back the husband. - -01:03:53.372 --> 01:03:55.124 -Crazy. - -01:03:55.208 --> 01:03:58.085 -Don't worry about it. I'll take care of it. - -01:04:29.867 --> 01:04:31.160 -Where's Cook? - -01:04:31.285 --> 01:04:33.746 -He's in the dressing room. - -01:04:33.829 --> 01:04:35.998 -Where's that? - -01:04:36.082 --> 01:04:37.667 -It's over there. - -01:05:07.488 --> 01:05:09.365 -Whose money do I have? - -01:05:10.658 --> 01:05:12.868 -Don't worry. They're going to come get it. - -01:05:13.202 --> 01:05:14.745 -No! No! - -01:05:15.538 --> 01:05:16.956 -Call them. - -01:05:17.039 --> 01:05:18.791 -Somebody call Nino! - -01:05:30.261 --> 01:05:32.054 -Do you remember this? - -01:05:55.911 --> 01:05:57.079 -Hello. - -01:05:58.331 --> 01:05:59.457 -Nino? - -01:05:59.540 --> 01:06:01.751 -No, sorry, pal. -Why don't you call back later? - -01:06:01.834 --> 01:06:03.210 -We 're closed. - -01:06:03.294 --> 01:06:07.214 -I could, but I think Nino would be upset -that you made him wait. - -01:06:07.298 --> 01:06:10.009 -Can I ask what this is about? - -01:06:10.092 --> 01:06:12.053 -I have something of his. - -01:06:12.887 --> 01:06:14.180 -And that would be? - -01:06:15.431 --> 01:06:17.099 -A million dollars. - -01:06:18.351 --> 01:06:19.727 -Please hold. - -01:06:27.109 --> 01:06:29.487 -You got something -that fucking belongs to me? - -01:06:34.825 --> 01:06:36.827 -It seems that way. - -01:06:38.954 --> 01:06:40.831 -And you're calling me? - -01:06:42.083 --> 01:06:43.125 -Why? - -01:06:44.460 --> 01:06:47.129 -You expect me -to buy my own shit back from you? - -01:06:47.213 --> 01:06:49.131 -I'm not selling it. - -01:06:49.423 --> 01:06:53.302 -I'm going to give you a time and a place -and you're going to come and get it. - -01:06:53.386 --> 01:06:55.054 -Do you understand? - -01:06:56.430 --> 01:06:59.433 -And what do you get out of it? - -01:06:59.517 --> 01:07:00.851 -Just that. - -01:07:01.769 --> 01:07:03.104 -Out of it. - -01:07:04.230 --> 01:07:06.857 -And your partners are happy with that? - -01:07:08.275 --> 01:07:10.236 -I don't have any partners. - -01:07:11.112 --> 01:07:14.782 -You discuss this with anybody else? - -01:07:16.283 --> 01:07:17.785 -No, just you. - -01:07:19.328 --> 01:07:21.956 -You're not very good at this, are you? - -01:07:33.467 --> 01:07:36.053 -Go check out who this fucking guy is. - -01:08:14.759 --> 01:08:17.762 -Can I talk to you for a minute? - -01:08:17.845 --> 01:08:19.847 -Can't talk. I have to go. - -01:08:23.058 --> 01:08:25.436 -Can I just walk with you for a... - -01:08:25.519 --> 01:08:26.812 -Yeah. - -01:08:46.540 --> 01:08:48.709 -I have to tell you something. - -01:08:54.673 --> 01:09:00.721 -Standard was into some guys in prison -for a lot of money. - -01:09:03.682 --> 01:09:07.645 -And they were going to hurt you -and Benicio if he didn't pay it. - -01:09:10.231 --> 01:09:12.483 -He asked me for my help. - -01:09:15.653 --> 01:09:17.530 -Everything went wrong. - -01:09:21.450 --> 01:09:22.785 -I'm sorry. - -01:09:28.123 --> 01:09:30.000 -I still got the money. - -01:09:33.921 --> 01:09:36.298 -You can have it if you wanted to. - -01:09:38.759 --> 01:09:40.678 -You can take Benicio... - -01:09:52.314 --> 01:09:55.776 -I just thought you could get out of here -if you wanted. - -01:09:58.445 --> 01:10:00.322 -I could come with you. - -01:10:04.368 --> 01:10:06.370 -I could look out for you. - -01:10:11.375 --> 01:10:14.211 -Sorry. Wrong floor. - -01:13:37.873 --> 01:13:40.375 -They came to my apartment, Shannon. - -01:13:41.502 --> 01:13:43.045 -How'd they know where I live? - -01:13:45.339 --> 01:13:46.924 -I told you. I was going to call Bernie. - -01:13:47.007 --> 01:13:49.551 -I just wanted him to know that... -That it wasn't about... - -01:13:49.676 --> 01:13:52.471 -That you're not interested in the money. -That you just did it for the girl. - -01:13:58.852 --> 01:14:00.437 -- I just... -- Why did you have to fucking tell them - -01:14:00.521 --> 01:14:01.563 -about Irene? - -01:14:01.647 --> 01:14:03.816 -- Calm down! -- You told them about Irene! - -01:14:03.899 --> 01:14:05.651 -Calm down, kid. Just calm down. - -01:14:05.734 --> 01:14:07.820 -I should fucking kill you! - -01:14:07.903 --> 01:14:09.196 -You told them about Irene. - -01:14:09.530 --> 01:14:11.865 -I just wanted him to know - -01:14:12.407 --> 01:14:14.785 -that as soon as you returned the money -that was the end of it. - -01:14:14.868 --> 01:14:16.787 -That's all. I didn't know... - -01:14:16.870 --> 01:14:20.582 -How was I supposed to know? -How was I supposed to know that? Okay? - -01:14:20.666 --> 01:14:23.377 -Look, let me just talk to Bernie. Okay. - -01:14:24.044 --> 01:14:26.713 -Why you got to fuck -everything up, Shannon? - -01:14:26.797 --> 01:14:30.008 -How was I supposed to know -everything led to Nino? - -01:14:36.014 --> 01:14:37.474 -They're gonna come looking for me. - -01:14:37.558 --> 01:14:39.518 -And they're going to come for you. - -01:14:39.601 --> 01:14:41.979 -Do you understand? - -01:14:42.062 --> 01:14:45.566 -You got to get out of here. -And you got to get out now. - -01:14:45.649 --> 01:14:46.984 -- Listen to me. -- Oh, God. - -01:14:47.067 --> 01:14:48.944 -Listen to me, Shannon. - -01:14:49.027 --> 01:14:50.612 -Listen. - -01:14:50.696 --> 01:14:54.449 -You get out of here -and you never fucking come back. - -01:14:54.533 --> 01:14:56.285 -You never come back. - -01:15:02.249 --> 01:15:04.251 -What are you going to do? - -01:15:21.101 --> 01:15:23.896 -I already gave you my advice. - -01:15:23.979 --> 01:15:26.607 -You should have taken the money -and left the guy alone. - -01:15:26.690 --> 01:15:27.900 -It's not that simple, Bernie. - -01:15:27.983 --> 01:15:31.153 -No, of course not. -Now that it's bounced up in your face. - -01:15:31.236 --> 01:15:32.321 -Nino, I owe you this guy. - -01:15:32.404 --> 01:15:34.198 -Just give me a little time -and I'll get rid of him. - -01:15:34.281 --> 01:15:36.825 -Shut the fuck up, - -01:15:36.909 --> 01:15:39.077 -you fucking monkey. - -01:15:39.161 --> 01:15:42.873 -The money belongs -to some half-assed wise guy out of Philly. - -01:15:42.956 --> 01:15:44.666 -Now, I got tipped off, - -01:15:44.750 --> 01:15:47.127 -he was stashing -a million bucks in a pawnshop. - -01:15:47.211 --> 01:15:48.879 -He was going to invest it here in LA. - -01:15:48.962 --> 01:15:50.672 -He was going to set up a rival operation. - -01:15:51.340 --> 01:15:53.717 -So you stole from the East Coast mob? - -01:15:53.800 --> 01:15:56.929 -No. I stole from some jumped-up punk - -01:15:57.012 --> 01:15:58.722 -who was trying to step on our action. - -01:15:58.805 --> 01:16:03.310 -Yeah? Then why didn't you come to me -before you set up this dummy robbery? - -01:16:04.561 --> 01:16:06.521 -Before you hire this piece of shit. - -01:16:06.605 --> 01:16:08.232 -This is something off to the side, Bernie. - -01:16:08.315 --> 01:16:09.858 -I didn't want to involve you in this. - -01:16:09.942 --> 01:16:11.818 -Well, I'm involved now! - -01:16:13.820 --> 01:16:15.530 -I'm going to tell you something. - -01:16:15.614 --> 01:16:17.449 -Anybody... - -01:16:17.532 --> 01:16:21.453 -Anybody finds out you -stole from the family, - -01:16:21.536 --> 01:16:23.038 -we're both dead. - -01:16:23.121 --> 01:16:24.873 -What fucking family? - -01:16:25.832 --> 01:16:29.586 -The family who still -calls me a fucking kike! - -01:16:29.670 --> 01:16:31.338 -To my face! - -01:16:32.464 --> 01:16:34.591 -Yeah, I'm 59 years old, Bernie. - -01:16:34.675 --> 01:16:37.344 -They still pinch my cheek -like I'm some fucking kid. - -01:16:39.179 --> 01:16:40.430 -Family. - -01:16:40.514 --> 01:16:43.267 -The money always flows up, Izzy. - -01:16:43.350 --> 01:16:44.851 -You know that. - -01:16:46.395 --> 01:16:49.940 -That's why this driver's gotta go, Bernie. - -01:16:50.023 --> 01:16:52.943 -He's gotta go. And your pal, Shannon. - -01:16:53.026 --> 01:16:56.738 -These are the only two guys -who can tie me to this robbery. - -01:17:36.570 --> 01:17:39.281 -Now it's your turn to clean up after me. - -01:18:42.803 --> 01:18:44.971 -All these priceless cars. - -01:18:45.055 --> 01:18:47.808 -One would think you'd have better locks. - -01:18:49.643 --> 01:18:51.269 -Why? - -01:18:51.353 --> 01:18:53.563 -Door's always open to you. - -01:18:53.647 --> 01:18:54.898 -Going somewhere? - -01:19:00.529 --> 01:19:01.905 -Thinking about it. - -01:19:03.156 --> 01:19:05.033 -I'm looking for your driver. - -01:19:07.411 --> 01:19:09.955 -You break in here, I figure it's bad news. - -01:19:10.288 --> 01:19:14.042 -No, Shannon. It's bad luck. - -01:19:14.126 --> 01:19:17.796 -2,000 heists a year in this city, - -01:19:17.879 --> 01:19:19.756 -he has to pick the wrong one. - -01:19:20.590 --> 01:19:21.925 -He tried to put it right. - -01:19:22.008 --> 01:19:24.678 -Well, he picked the wrong -guy for that, too. - -01:19:24.761 --> 01:19:28.890 -My partner is a belligerent asshole -with his back against the wall. - -01:19:29.516 --> 01:19:31.268 -Right now, so am I. - -01:19:32.227 --> 01:19:35.439 -If I don't set this straight, -I'm in big trouble. - -01:19:38.608 --> 01:19:40.735 -Any idea where he might be? - -01:19:43.321 --> 01:19:44.531 -Mexico. - -01:19:45.699 --> 01:19:48.285 -Or maybe it was Belize. - -01:19:51.621 --> 01:19:52.956 -Really? - -01:19:59.546 --> 01:20:02.674 -I was getting excited -about this whole thing. - -01:20:02.757 --> 01:20:05.177 -My name on a car! - -01:20:05.260 --> 01:20:07.554 -I mean, look how beautiful. - -01:20:08.221 --> 01:20:10.891 -I wanted to see my name on this thing. - -01:20:13.101 --> 01:20:16.313 -I think we would have made a go -at this business. - -01:20:31.244 --> 01:20:33.955 -Don't worry. Don't worry. That's it. - -01:20:34.039 --> 01:20:35.248 -It's done. - -01:20:36.041 --> 01:20:38.376 -There's no pain. It's over. It's over. - -01:25:16.488 --> 01:25:18.406 -What the fuck was that? - -01:25:51.064 --> 01:25:52.357 -Let's get out of here. - -01:25:52.440 --> 01:25:54.067 -Yeah. - -01:27:55.647 --> 01:27:56.814 -Hello? - -01:27:58.024 --> 01:28:01.319 -You know -the story about the scorpion and the frog? - -01:28:04.197 --> 01:28:07.367 -Your friend Nino -didn't make it across the river. - -01:28:09.619 --> 01:28:12.205 -I think this has gone on long enough. - -01:28:13.581 --> 01:28:16.209 -You see any reason for it to continue? - -01:28:18.002 --> 01:28:20.004 -What do you say we meet? - -01:28:22.507 --> 01:28:23.967 -Why? - -01:28:25.760 --> 01:28:30.473 -Well, you, me, and your girlfriend -are the only players left. - -01:28:31.474 --> 01:28:32.725 -How's that for a reason? - -01:28:35.561 --> 01:28:36.896 -When? - -01:28:36.980 --> 01:28:38.815 -Tomorrow. - -01:28:38.898 --> 01:28:40.692 -There's a place on Sherman Way - -01:28:40.775 --> 01:28:43.152 -it's a restaurant called The Great Wall. - -01:28:43.236 --> 01:28:44.779 -Do you know it? - -01:29:13.057 --> 01:29:14.976 -Can I talk to you? - -01:29:17.603 --> 01:29:19.480 -I won't keep you long. - -01:29:24.235 --> 01:29:27.822 -I have to go somewhere -and I don't think I can come back. - -01:29:32.285 --> 01:29:34.954 -But I just want you to know. - -01:29:35.038 --> 01:29:37.749 -Getting to be around you and Benicio - -01:29:39.959 --> 01:29:42.879 -was the best thing that -ever happened to me. - -01:30:34.806 --> 01:30:36.766 -Did you bring the money? - -01:30:42.730 --> 01:30:45.441 -Here's what I'm prepared to offer. - -01:30:45.525 --> 01:30:48.611 -You give me the money, the girl is safe. - -01:30:48.694 --> 01:30:50.571 -Forever. Nobody knows about her. - -01:30:50.655 --> 01:30:52.365 -She's off the map. - -01:30:54.075 --> 01:30:56.327 -I can't offer you the same. - -01:30:57.620 --> 01:31:00.039 -So, this is what I would suggest. - -01:31:00.706 --> 01:31:03.584 -We conclude our deal. We'll shake hands. - -01:31:03.668 --> 01:31:06.003 -You start the rest of your life. - -01:31:08.714 --> 01:31:11.300 -Any dreams you have, or plans, - -01:31:11.384 --> 01:31:13.386 -or hopes for your future... - -01:31:13.469 --> 01:31:16.889 -I think you're going to -have to put that on hold. - -01:31:16.973 --> 01:31:19.934 -For the rest of your life you're going to -be looking over your shoulder. - -01:31:20.017 --> 01:31:23.980 -I'm just telling you this -because I want you to know the truth. - -01:31:25.565 --> 01:31:27.400 -But the girl is safe. - -01:31:47.545 --> 01:31:49.422 -Where's the money now? - -01:31:50.965 --> 01:31:52.592 -It's in the car. - -01:32:00.975 --> 01:32:02.226 -Come on. - -01:40:24.220 --> 01:40:24.226 -... - -01:40:29.220 --> 01:40:39.220 -Encoded By Deceit @ YIFY Torrents - -01:41:08.468 --> 01:41:11.470 -♪ Yo ho -Yo ho - -01:41:11.555 --> 01:41:14.600 -♪ A pirate's life for me - -01:41:14.642 --> 01:41:19.437 -♪ We extort, we pilfer -We filch, we sack - -01:41:19.479 --> 01:41:21.983 -- ♪ Drink... -- Quiet, missy! - -01:41:22.066 --> 01:41:24.442 -Cursed pirates sail these waters. - -01:41:24.526 --> 01:41:26.777 -You don't want to bring -them down on us, do ya? - -01:41:26.862 --> 01:41:28.655 -Mr. Gibbs, that will do. - -01:41:29.448 --> 01:41:31.325 -She was singing about pirates! - -01:41:31.367 --> 01:41:33.492 -Bad luck to be singing about pirates - -01:41:33.577 --> 01:41:36.747 -with us mired in this unnatural fog, -mark my words. - -01:41:36.831 --> 01:41:38.165 -Consider them marked. - -01:41:39.918 --> 01:41:42.335 -- On your way. -- Aye, lieutenant. - -01:41:42.420 --> 01:41:44.504 -It's bad luck to have -a woman on board too. - -01:41:44.547 --> 01:41:46.797 -Even a miniature one. - -01:41:47.924 --> 01:41:50.384 -I think it'd be rather exciting -to meet a pirate. - -01:41:52.096 --> 01:41:54.181 -Think again, Miss Swann. - -01:41:54.265 --> 01:41:57.100 -Vile and dissolute creatures, -the lot of 'em. - -01:41:57.184 --> 01:42:00.312 -I intend to see to it that any man -who sails under a pirate flag - -01:42:00.354 --> 01:42:02.980 -or wears a pirate brand -gets what he deserves. - -01:42:04.190 --> 01:42:06.360 -A short drop and a sudden stop. - -01:42:10.405 --> 01:42:13.032 -Lieutenant Norrington, -I appreciate your fervor, - -01:42:13.075 --> 01:42:17.704 -but I'm concerned about the effect -this subject will have upon my daughter. - -01:42:17.788 --> 01:42:19.580 -My apologies, Governor Swann. - -01:42:19.665 --> 01:42:21.875 -Actually, I find it all fascinating. - -01:42:21.960 --> 01:42:23.708 -Yes. That's what concerns me. - -01:42:51.989 --> 01:42:54.407 -Look! A boy! -There's a boy in the water! - -01:42:56.868 --> 01:42:58.828 -Man overboard! - -01:43:00.080 --> 01:43:01.789 -Man the ropes! -Fetch a hook! - -01:43:02.624 --> 01:43:03.958 -Haul him aboard! - -01:43:12.508 --> 01:43:14.427 -He's still breathing. - -01:43:14.510 --> 01:43:16.762 -Mary, Mother of God! - -01:43:23.228 --> 01:43:24.771 -What happened here? - -01:43:26.272 --> 01:43:29.983 -Most likely the powder magazine. -Merchant vessels run heavily armed. - -01:43:32.029 --> 01:43:33.610 -Lot of good it did them. - -01:43:33.695 --> 01:43:36.282 -Everyone's thinking it, -I'm just saying it. - -01:43:37.160 --> 01:43:38.367 -Pirates! - -01:43:38.452 --> 01:43:41.287 -There's no proof of that! - -01:43:41.329 --> 01:43:42.870 -It was probably an accident. - -01:43:44.459 --> 01:43:46.249 -Rouse the captain. - -01:43:46.292 --> 01:43:48.209 -- Aye, sir. -- Heave to and take in sail. - -01:43:48.294 --> 01:43:49.961 -- Launch the boats. -- Heave to! - -01:43:52.132 --> 01:43:54.467 -Elizabeth, I want you -to accompany the boy. - -01:43:55.634 --> 01:43:56.969 -He'll be in your charge. - -01:43:57.012 --> 01:43:58.679 -Take care of him. - -01:44:16.740 --> 01:44:19.657 -It's OK. - -01:44:19.742 --> 01:44:22.494 -My name's Elizabeth Swann. - -01:44:23.829 --> 01:44:25.247 -Will Turner. - -01:44:26.249 --> 01:44:28.167 -I'm watching over you, Will. - -01:44:40.972 --> 01:44:42.931 -You're a pirate! - -01:44:43.015 --> 01:44:44.934 -Has he said anything? - -01:44:45.018 --> 01:44:46.602 -His name's William Turner. - -01:44:46.686 --> 01:44:48.186 -That's all I found out. - -01:44:49.188 --> 01:44:51.398 -Take him below. - -01:46:00.801 --> 01:46:02.594 -Elizabeth! - -01:46:04.429 --> 01:46:05.597 -Are you all right? - -01:46:07.017 --> 01:46:08.141 -Are you decent? - -01:46:08.768 --> 01:46:09.768 -Yes. - -01:46:09.811 --> 01:46:10.810 -Yes? - -01:46:12.313 --> 01:46:13.772 -Still in bed at this hour? - -01:46:15.816 --> 01:46:18.109 -It's a beautiful day. - -01:46:19.611 --> 01:46:21.197 -I have a gift for you. - -01:46:24.158 --> 01:46:27.117 -- Oh, it's beautiful! -- Isn't it? - -01:46:28.788 --> 01:46:31.207 -May I inquire as to the occasion? - -01:46:31.289 --> 01:46:34.708 -Does a father need an occasion -to dote upon his daughter? - -01:46:34.792 --> 01:46:36.836 -Go on. - -01:46:40.300 --> 01:46:41.799 -Actually, I... - -01:46:43.470 --> 01:46:46.095 -I had hoped you might wear it -for the ceremony today. - -01:46:46.138 --> 01:46:47.430 -Ceremony? - -01:46:47.473 --> 01:46:49.891 -Captain Norrington's promotion ceremony. - -01:46:49.975 --> 01:46:51.142 -I knew it! - -01:46:51.227 --> 01:46:54.520 -Commodore Norrington, -as he's about to become. - -01:46:54.605 --> 01:46:56.522 -A fine gentleman, don't you think? - -01:46:57.316 --> 01:46:58.816 -He fancies you, you know. - -01:46:58.860 --> 01:47:00.903 -Elizabeth? - -01:47:00.987 --> 01:47:02.654 -How's it coming? - -01:47:02.738 --> 01:47:05.323 -It's difficult to say. - -01:47:05.407 --> 01:47:07.659 -I'm told it's -the latest fashion in London. - -01:47:07.701 --> 01:47:09.076 -Well, women in London - -01:47:09.160 --> 01:47:10.828 -must've learned not to breathe! - -01:47:12.998 --> 01:47:14.667 -My Lord, you have a visitor. - -01:47:32.977 --> 01:47:34.185 -Ah, Mr. Turner. - -01:47:34.228 --> 01:47:35.687 -Good to see you again. - -01:47:35.771 --> 01:47:37.605 -Good day, sir. - -01:47:38.523 --> 01:47:39.690 -I have your order. - -01:47:45.197 --> 01:47:46.364 -Well... - -01:47:46.448 --> 01:47:48.199 -The blade is folded steel. - -01:47:48.284 --> 01:47:51.285 -That's gold filigree -laid into the handle. - -01:47:51.996 --> 01:47:53.246 -If I may? - -01:47:55.416 --> 01:47:56.873 -Perfectly balanced. - -01:47:57.667 --> 01:47:59.961 -The tang is nearly -the full width of the blade. - -01:48:02.881 --> 01:48:05.049 -Impressive. Very impressive. - -01:48:05.092 --> 01:48:06.426 -Very nice. - -01:48:07.094 --> 01:48:10.095 -Commodore Norrington's going -to be very pleased with this. - -01:48:11.222 --> 01:48:13.725 -Do pass my compliments -onto your master. - -01:48:15.893 --> 01:48:16.893 -I shall. - -01:48:18.354 --> 01:48:21.691 -A craftsman is always pleased -to hear his work is appreciated. - -01:48:23.192 --> 01:48:26.695 -Elizabeth! -You look absolutely stunning. - -01:48:26.738 --> 01:48:28.572 -Will. - -01:48:28.906 --> 01:48:31.742 -It's so good to see you. - -01:48:31.826 --> 01:48:33.493 -I had a dream about you last night. - -01:48:33.578 --> 01:48:34.578 -About me? - -01:48:34.662 --> 01:48:36.331 -Is it entirely proper for you...? - -01:48:36.415 --> 01:48:38.206 -About the day we met. -Do you remember? - -01:48:38.249 --> 01:48:41.084 -How could I forget, Miss Swann? - -01:48:41.127 --> 01:48:43.629 -How many times must I ask you -to call me Elizabeth? - -01:48:43.714 --> 01:48:46.007 -At least once more, Miss Swann. - -01:48:46.091 --> 01:48:47.924 -As always. - -01:48:47.966 --> 01:48:49.260 -Now, you see? - -01:48:49.303 --> 01:48:51.595 -At least the boy -has a sense of propriety. - -01:48:51.679 --> 01:48:52.930 -We really must be going. - -01:48:52.973 --> 01:48:53.973 -Come on. - -01:48:55.309 --> 01:48:56.600 -Good day, Mr. Turner. - -01:48:58.185 --> 01:48:59.187 -Come along! - -01:49:02.566 --> 01:49:03.773 -Good day... - -01:49:06.611 --> 01:49:08.112 -...Elizabeth. - -01:50:38.870 --> 01:50:40.495 -Hold up there, you! - -01:50:42.164 --> 01:50:45.499 -It's a shilling to tie up -your boat to the dock. - -01:50:47.502 --> 01:50:49.211 -And I shall need to know your name. - -01:50:51.883 --> 01:50:54.176 -What do you say to three shillings, - -01:50:54.218 --> 01:50:55.469 -and we forget the name? - -01:50:58.931 --> 01:51:01.140 -Welcome to Port Royal, Mr. Smith. - -01:51:37.595 --> 01:51:39.428 -Two paces... march! - -01:51:41.973 --> 01:51:43.976 -Right about... face! - -01:51:46.521 --> 01:51:49.272 -Present... arms! - -01:52:13.547 --> 01:52:16.299 -This dock is off-limits to civilians. - -01:52:16.384 --> 01:52:18.133 -I'm terribly sorry, I didn't know. - -01:52:18.176 --> 01:52:20.887 -If I see one, -I shall inform you immediately. - -01:52:24.474 --> 01:52:28.101 -Apparently, there's some high-toned -and fancy to-do up at the fort, eh? - -01:52:28.143 --> 01:52:31.314 -How could it be two upstanding -gentlemen, such as yourselves, - -01:52:31.400 --> 01:52:33.358 -did not merit an invitation? - -01:52:33.442 --> 01:52:36.611 -Someone has to make sure this dock -stays off-limits to civilians. - -01:52:36.654 --> 01:52:39.031 -It's a fine goal, to be sure. - -01:52:39.114 --> 01:52:41.074 -But it seems to me, a... - -01:52:41.158 --> 01:52:42.908 -A ship like that... - -01:52:42.993 --> 01:52:45.996 -...makes this one here -a bit superfluous, really. - -01:52:46.038 --> 01:52:49.164 -Oh, the Dauntless is the power -in these waters, true enough, - -01:52:49.207 --> 01:52:53.168 -but there's no ship that can match -the Interceptor for speed. - -01:52:53.211 --> 01:52:54.295 -I've heard of one. - -01:52:54.337 --> 01:52:57.006 -It's supposed to be very fast, -nigh uncatchable. - -01:52:57.090 --> 01:52:58.842 -The Black Pearl. - -01:53:01.387 --> 01:53:02.885 -There's no real ship - -01:53:02.970 --> 01:53:04.639 -that can match the Interceptor. - -01:53:06.309 --> 01:53:08.351 -The Black Pearl is a real ship. - -01:53:08.394 --> 01:53:10.019 -No. No, it's not. - -01:53:10.061 --> 01:53:11.395 -Yes, it is. I've seen it! - -01:53:12.146 --> 01:53:13.231 -You've seen it? - -01:53:13.316 --> 01:53:16.192 -- Yes. -- You haven't seen it! - -01:53:16.277 --> 01:53:18.984 -- Yes, I have! -- You've seen a ship - -01:53:19.027 --> 01:53:21.032 -with black sails, - -01:53:21.116 --> 01:53:22.782 -that's crewed by the damned, - -01:53:22.867 --> 01:53:25.367 -and captained by a man so evil - -01:53:25.410 --> 01:53:28.037 -that hell itself spat him back out? - -01:53:28.830 --> 01:53:31.081 -No. - -01:53:31.833 --> 01:53:34.250 -But I have seen a ship -with black sails. - -01:53:34.335 --> 01:53:37.212 -Oh... And no ship that's -not crewed by the damned, - -01:53:37.297 --> 01:53:40.049 -and captained by a man so evil -that hell spat him back out - -01:53:40.091 --> 01:53:41.717 -could possibly have black sails, - -01:53:41.801 --> 01:53:44.053 -therefore couldn't possibly -be any other ship - -01:53:44.095 --> 01:53:47.555 -than the Black Pearl, -is that what you're saying? - -01:53:47.598 --> 01:53:48.724 -No. - -01:53:48.767 --> 01:53:50.058 -Like I said, - -01:53:50.142 --> 01:53:53.354 -there's no real ship -that can match the Interceptor... - -01:53:55.816 --> 01:53:56.814 -Hey! - -01:53:58.278 --> 01:53:59.276 -You! - -01:53:59.778 --> 01:54:01.445 -Get away from there! - -01:54:01.529 --> 01:54:03.905 -You don't have permission -to be aboard there! - -01:54:03.947 --> 01:54:05.659 -Sorry. It's such a pretty boat. - -01:54:05.742 --> 01:54:06.741 -Ship! - -01:54:07.495 --> 01:54:08.494 -What's your name? - -01:54:08.577 --> 01:54:09.577 -Smith! - -01:54:09.620 --> 01:54:11.372 -Or Smithy, if you like. - -01:54:11.414 --> 01:54:14.709 -What's your purpose in Port Royal, -Mr. Smith? - -01:54:14.752 --> 01:54:15.751 -Yeah, and no lies! - -01:54:15.835 --> 01:54:17.295 -All right then. - -01:54:17.380 --> 01:54:18.379 -I confess. - -01:54:18.796 --> 01:54:22.091 -It is my intention to commandeer -one of these ships, pick up a crew - -01:54:22.174 --> 01:54:25.593 -in Tortuga to rape, pillage, and pilfer -my weasely black guts out. - -01:54:25.636 --> 01:54:27.553 -I said, no lies! - -01:54:27.596 --> 01:54:29.516 -I think he's telling the truth. - -01:54:29.600 --> 01:54:31.141 -If he were telling the truth, - -01:54:31.226 --> 01:54:32.477 -he wouldn't have told us. - -01:54:33.436 --> 01:54:36.980 -Unless he knew you wouldn't believe -the truth, even if he told it to you. - -01:54:47.701 --> 01:54:49.076 -May I have a moment? - -01:54:58.044 --> 01:54:59.794 -You look lovely, Elizabeth. - -01:54:59.837 --> 01:55:01.631 -Yes. - -01:55:02.716 --> 01:55:05.384 -I apologize if I seem forward, - -01:55:05.468 --> 01:55:07.554 -but I must speak my mind. - -01:55:10.433 --> 01:55:13.434 -This promotion throws into sharp relief - -01:55:13.476 --> 01:55:16.435 -that which I have not yet achieved. - -01:55:18.897 --> 01:55:20.650 -A marriage to a fine woman. - -01:55:22.193 --> 01:55:24.862 -You have become a fine woman, Elizabeth. - -01:55:25.446 --> 01:55:26.822 -I can't breathe. - -01:55:26.906 --> 01:55:28.698 -Yes, I... - -01:55:28.782 --> 01:55:30.284 -I'm a bit nervous myself. - -01:55:33.162 --> 01:55:34.871 -And then they made me their chief. - -01:55:37.834 --> 01:55:38.876 -Elizabeth? - -01:55:41.587 --> 01:55:42.588 -Elizabeth! - -01:55:44.841 --> 01:55:47.550 -The rocks! -Sir, it's a miracle she missed them! - -01:55:50.053 --> 01:55:52.348 -- Will you be saving her, then? -- I can't swim! - -01:55:54.517 --> 01:55:56.517 -Pearl of the King's Navy, you are! - -01:55:56.560 --> 01:55:58.270 -Do not lose these! - -01:56:12.743 --> 01:56:13.952 -What was that? - -01:56:48.612 --> 01:56:50.237 -Make way! - -01:56:56.786 --> 01:56:57.786 -I got her! - -01:56:59.165 --> 01:57:00.331 -She's not breathing! - -01:57:00.416 --> 01:57:01.416 -Move! - -01:57:08.507 --> 01:57:10.258 -I never would've thought of that. - -01:57:10.342 --> 01:57:12.592 -Clearly you've never been to Singapore. - -01:57:18.183 --> 01:57:19.810 -Where did you get that? - -01:57:22.021 --> 01:57:24.231 -On your feet. - -01:57:25.607 --> 01:57:26.858 -Elizabeth! - -01:57:28.193 --> 01:57:30.193 -- Are you all right? -- Yes, I'm fine. - -01:57:35.158 --> 01:57:37.743 -- Shoot him! -- Father! Commodore... - -01:57:37.786 --> 01:57:39.828 -...do you intend to kill my rescuer? - -01:57:47.212 --> 01:57:49.005 -I believe thanks are in order. - -01:57:53.635 --> 01:57:56.470 -Had a brush with the East India -Trading Company, did we? - -01:57:56.513 --> 01:57:57.804 -Pirate? - -01:57:59.058 --> 01:58:00.349 -Hang him. - -01:58:00.434 --> 01:58:03.184 -Keep your guns on him, men. -Gillette, fetch some irons. - -01:58:04.438 --> 01:58:05.772 -Well, well. - -01:58:05.815 --> 01:58:08.316 -Jack Sparrow, isn't it? - -01:58:08.400 --> 01:58:11.027 -Captain Jack Sparrow, -if you please, sir. - -01:58:11.111 --> 01:58:12.988 -Well, I don't see your ship... - -01:58:13.031 --> 01:58:14.196 -...captain. - -01:58:14.281 --> 01:58:16.657 -I'm in the market, as it were. - -01:58:16.700 --> 01:58:18.701 -He said he'd come to commandeer one. - -01:58:18.784 --> 01:58:21.579 -I told you he was telling the truth. -These are his, sir. - -01:58:25.042 --> 01:58:28.169 -No additional shots nor powder. - -01:58:30.005 --> 01:58:31.840 -A compass that doesn't point north. - -01:58:36.845 --> 01:58:39.513 -And I half expected it -to be made of wood. - -01:58:42.017 --> 01:58:44.936 -You are, without doubt, -the worst pirate I've heard of. - -01:58:45.938 --> 01:58:47.354 -But you have heard of me. - -01:58:50.316 --> 01:58:52.859 -Commodore, I really must protest! - -01:58:52.944 --> 01:58:54.527 -Carefully, lieutenant. - -01:58:54.570 --> 01:58:56.863 -Pirate or not, this man saved my life! - -01:58:56.907 --> 01:59:00.410 -One good deed is not enough to redeem -a man of a lifetime of wickedness! - -01:59:00.495 --> 01:59:02.202 -But it seems enough to condemn him. - -01:59:02.286 --> 01:59:03.746 -Indeed. - -01:59:05.289 --> 01:59:06.999 -Finally. - -01:59:07.042 --> 01:59:09.376 -Wait, don't shoot! - -01:59:09.418 --> 01:59:10.752 -I knew you'd warm up to me. - -01:59:10.836 --> 01:59:13.632 -Commodore Norrington, -my effects, please. - -01:59:13.716 --> 01:59:15.383 -And my hat. - -01:59:16.010 --> 01:59:17.342 -Commodore. - -01:59:19.887 --> 01:59:23.224 -- Elizabeth. It is Elizabeth, isn't it? -- It's Miss Swann. - -01:59:23.266 --> 01:59:25.893 -Miss Swann, if you'd be so kind. - -01:59:25.936 --> 01:59:28.563 -Come, dear, we don't have all day. - -01:59:29.898 --> 01:59:31.316 -Now, if you'll be very kind. - -01:59:48.333 --> 01:59:49.749 -Easy on the goods, darling. - -01:59:51.170 --> 01:59:52.585 -You're despicable. - -01:59:52.670 --> 01:59:54.714 -Sticks and stones, love. - -01:59:54.756 --> 01:59:56.339 -I saved your life, you save mine. - -01:59:56.424 --> 01:59:57.424 -We're square. - -01:59:58.427 --> 01:59:59.633 -Gentlemen... - -01:59:59.718 --> 02:00:01.178 -...my lady... - -02:00:01.263 --> 02:00:04.597 -...you will always remember this -as the day you almost caught... - -02:00:04.682 --> 02:00:07.101 -...Captain Jack Sparrow! - -02:00:23.660 --> 02:00:25.619 -Whoa! - -02:00:25.704 --> 02:00:27.162 -Now, will you shoot him? - -02:00:27.246 --> 02:00:28.914 -Open fire! - -02:00:30.666 --> 02:00:31.834 -Ahh! - -02:00:36.214 --> 02:00:37.630 -Burn his heels! - -02:00:46.556 --> 02:00:47.767 -Take steady aim. - -02:00:47.809 --> 02:00:49.141 -Fire! - -02:00:53.064 --> 02:00:55.066 -Take cover, men! - -02:00:55.150 --> 02:00:57.067 -Gillette... - -02:00:57.152 --> 02:00:59.987 -...Mr. Sparrow has a dawn -appointment with the gallows. - -02:01:00.364 --> 02:01:02.363 -I would hate for him to miss it. - -02:01:06.368 --> 02:01:07.786 -Search upstairs! - -02:01:09.120 --> 02:01:10.331 -Look lively, men! - -02:01:52.456 --> 02:01:53.832 -Whoa! - -02:02:43.590 --> 02:02:45.717 -Right where I left you. - -02:02:52.267 --> 02:02:54.100 -Not where I left you. - -02:03:04.694 --> 02:03:06.529 -You're the one they're hunting. - -02:03:07.531 --> 02:03:08.698 -The pirate! - -02:03:09.450 --> 02:03:12.577 -You seem somewhat familiar. -Have I threatened you before? - -02:03:12.620 --> 02:03:15.289 -I make a point of avoiding -familiarity with pirates. - -02:03:15.372 --> 02:03:16.413 -Ah... - -02:03:16.456 --> 02:03:19.124 -It would be a shame to put -a black mark on your record. - -02:03:19.209 --> 02:03:20.710 -So if you'll excuse me... - -02:03:24.215 --> 02:03:26.381 -Do you think this wise, boy? - -02:03:27.343 --> 02:03:30.510 -Crossing blades with a pirate? - -02:03:30.595 --> 02:03:31.971 -You threatened Miss Swann. - -02:03:35.016 --> 02:03:36.351 -Only a little. - -02:03:49.949 --> 02:03:53.117 -You know what you're doing, -I'll give you that. Excellent form. - -02:03:53.993 --> 02:03:55.702 -But how's your footwork? - -02:03:55.787 --> 02:03:57.872 -If I step here... - -02:03:59.251 --> 02:04:00.667 -Very good. - -02:04:00.709 --> 02:04:02.794 -And now I step again. - -02:04:07.507 --> 02:04:08.841 -Ta. - -02:04:28.737 --> 02:04:30.404 -That is a wonderful trick. - -02:04:31.699 --> 02:04:35.368 -Except, once again, -you are between me and my way out. - -02:04:35.452 --> 02:04:36.576 -And now... - -02:04:37.205 --> 02:04:38.620 -...you have no weapon. - -02:05:00.977 --> 02:05:02.602 -Who makes all these? - -02:05:04.062 --> 02:05:05.399 -I do. - -02:05:05.442 --> 02:05:07.733 -And I practice with them... - -02:05:08.276 --> 02:05:09.402 -...three hours a day. - -02:05:11.236 --> 02:05:13.405 -You need to find yourself a girl, mate. - -02:05:20.078 --> 02:05:22.998 -Or... perhaps the reason -you practice three hours a day - -02:05:23.082 --> 02:05:24.917 -is that you already found one, - -02:05:24.960 --> 02:05:28.588 -and are otherwise incapable -of wooing said strumpet. - -02:05:28.672 --> 02:05:31.090 -You're not a eunuch, are you? - -02:05:31.175 --> 02:05:34.135 -I practice three hours a day -so that when I meet a pirate, - -02:05:34.219 --> 02:05:35.594 -I can kill him! - -02:06:52.839 --> 02:06:53.881 -You cheated. - -02:06:53.966 --> 02:06:55.214 -Pirate. - -02:06:58.804 --> 02:07:00.846 -- Move away! -- No. - -02:07:00.888 --> 02:07:02.264 -Please move? - -02:07:02.348 --> 02:07:03.349 -No! - -02:07:03.392 --> 02:07:06.185 -I cannot just step aside -and let you escape. - -02:07:08.729 --> 02:07:10.729 -This shot is not meant for you. - -02:07:21.076 --> 02:07:23.076 -There he is! Over here! - -02:07:25.078 --> 02:07:27.036 -Excellent work, Mr. Brown. - -02:07:28.040 --> 02:07:30.917 -You've assisted in the capture -of a dangerous fugitive. - -02:07:31.002 --> 02:07:33.294 -Just doing my civic duty, sir. - -02:07:34.295 --> 02:07:36.882 -I trust you will always remember -that this is the day - -02:07:36.924 --> 02:07:40.385 -Captain Jack Sparrow almost escaped. - -02:07:40.428 --> 02:07:42.178 -Take him away. - -02:07:46.475 --> 02:07:49.393 -- Come here, boy! -- Smell it? - -02:07:49.436 --> 02:07:52.772 -- Come here, boy! -- You want a nice, juicy bone? - -02:07:52.857 --> 02:07:54.983 -- Hey! -- Come here, boy! - -02:07:55.066 --> 02:07:57.568 -- Come here, boy! -- You can keep doing that forever. - -02:07:57.653 --> 02:07:59.862 -The dog is never going to move. - -02:07:59.905 --> 02:08:04.200 -Well, excuse us if we haven't resigned -ourselves to the gallows just yet! - -02:08:05.244 --> 02:08:06.661 -Come on! - -02:08:10.917 --> 02:08:12.208 -There you go, miss. - -02:08:12.250 --> 02:08:15.045 -It was a difficult day for you, -I'm sure. - -02:08:15.087 --> 02:08:17.756 -I suspected Commodore Norrington -would propose, - -02:08:17.840 --> 02:08:20.425 -but I must admit, -I wasn't entirely prepared for it. - -02:08:20.510 --> 02:08:22.761 -I meant you being -threatened by that pirate! - -02:08:22.803 --> 02:08:24.053 -Sounds terrifying! - -02:08:24.804 --> 02:08:27.557 -Oh... Yes, it was terrifying. - -02:08:27.601 --> 02:08:29.601 -But... the Commodore proposed! - -02:08:29.685 --> 02:08:31.268 -Fancy that. - -02:08:31.353 --> 02:08:32.937 -Now that's a smart match, miss, - -02:08:33.021 --> 02:08:35.147 -if it's not too bold to say. - -02:08:35.233 --> 02:08:36.608 -It is a smart match. - -02:08:37.776 --> 02:08:39.568 -He's a fine man. - -02:08:40.862 --> 02:08:43.366 -He's what any woman -should dream of marrying. - -02:08:44.449 --> 02:08:46.576 -Well, that Will Turner, - -02:08:46.618 --> 02:08:48.786 -he's a fine man too. - -02:08:48.828 --> 02:08:50.622 -That is too bold. - -02:08:50.706 --> 02:08:52.791 -Well, beggin' your pardon, miss. - -02:08:52.833 --> 02:08:54.500 -It was not my place. - -02:09:43.550 --> 02:09:46.552 -Has my daughter given -you an answer yet? - -02:09:46.636 --> 02:09:48.343 -No, she hasn't. - -02:09:48.386 --> 02:09:50.723 -Well, she has had a very trying day. - -02:09:52.393 --> 02:09:54.559 -Ghastly weather, don't you think? - -02:09:54.643 --> 02:09:56.520 -Bleak. Really bleak. - -02:09:58.316 --> 02:09:59.315 -What's that? - -02:10:00.400 --> 02:10:02.276 -Cannon fire! - -02:10:03.652 --> 02:10:05.529 -Return fire! - -02:10:05.572 --> 02:10:08.616 -I know those guns! - -02:10:13.579 --> 02:10:15.581 -It's the Pearl! - -02:10:15.664 --> 02:10:17.375 -Black Pearl? - -02:10:19.877 --> 02:10:21.503 -I've heard stories. - -02:10:21.546 --> 02:10:25.548 -She's been preying on ships and -settlements for near ten years. - -02:10:25.633 --> 02:10:27.218 -Never leaves any survivors. - -02:10:27.303 --> 02:10:28.719 -No survivors. - -02:10:28.762 --> 02:10:31.597 -Then where do the stories -come from, I wonder? - -02:10:40.899 --> 02:10:42.652 -Clear the dock! - -02:10:56.205 --> 02:10:57.872 -Mama! - -02:11:04.464 --> 02:11:06.090 -Hoist your oars! - -02:11:11.053 --> 02:11:13.347 -Come on, you! - -02:12:04.106 --> 02:12:05.941 -Sight the muzzle flash. - -02:12:05.984 --> 02:12:06.984 -Aim for the flashes. - -02:12:07.068 --> 02:12:09.153 -I need a full spread, fore and aft. - -02:12:09.195 --> 02:12:10.862 -Mr. Stevens, more cartridges! - -02:12:11.740 --> 02:12:14.867 -Governor! -Barricade yourself in my office. - -02:12:15.826 --> 02:12:16.826 -Good God! - -02:12:16.870 --> 02:12:18.494 -That's an order. - -02:12:35.429 --> 02:12:37.723 -Don't! - -02:12:38.515 --> 02:12:39.682 -Hello, chum. - -02:12:43.938 --> 02:12:45.481 -Up there! Go! - -02:12:55.282 --> 02:12:57.910 -Miss! They've come to kidnap you! - -02:12:57.994 --> 02:13:00.536 -- What? -- You're the governor's daughter! - -02:13:00.621 --> 02:13:01.789 -In here! - -02:13:03.540 --> 02:13:07.794 -They haven't seen you. Hide, and the -first chance you get, run to the fort! - -02:13:17.304 --> 02:13:18.930 -Got ya! Haven't I? - -02:13:22.434 --> 02:13:25.936 -No! No! It's hot! - -02:13:26.020 --> 02:13:27.898 -- I'm burning! -- Come on! - -02:13:32.361 --> 02:13:33.694 -Come on, me lads! - -02:14:00.931 --> 02:14:02.890 -Come out. - -02:14:11.858 --> 02:14:14.693 -We know you're here, poppet. - -02:14:15.779 --> 02:14:16.945 -Poppet. - -02:14:17.029 --> 02:14:18.072 -Come out... - -02:14:18.991 --> 02:14:21.201 -...and we promise we won't hurt you. - -02:14:21.286 --> 02:14:22.535 -Eh? - -02:14:24.287 --> 02:14:26.289 -We will find you, poppet. - -02:14:27.331 --> 02:14:29.750 -You've got something of ours, - -02:14:29.793 --> 02:14:31.585 -and it calls to us. - -02:14:37.301 --> 02:14:39.802 -The gold calls to us. - -02:14:40.845 --> 02:14:42.013 -The gold. - -02:14:48.145 --> 02:14:50.186 -Hello, poppet. - -02:14:50.731 --> 02:14:51.732 -Parley! - -02:14:52.441 --> 02:14:53.649 -What? - -02:14:53.691 --> 02:14:54.859 -Parley. - -02:14:54.943 --> 02:14:56.359 -I invoke the right of parley. - -02:14:56.444 --> 02:15:00.364 -According to the code of Brethren, set -down by pirates Morgan and Bartholomew, - -02:15:00.449 --> 02:15:03.534 -- you have to take me to your captain. -- I know the code. - -02:15:03.619 --> 02:15:06.327 -If an adversary demands parley, -you can do them no harm - -02:15:06.369 --> 02:15:09.164 -- until the parley is complete. -- To blazes with the code! - -02:15:09.248 --> 02:15:11.207 -She wants to be taken to the captain. - -02:15:12.711 --> 02:15:15.004 -And she'll go, without a fuss. - -02:15:16.047 --> 02:15:19.089 -We must honor the code. - -02:15:29.728 --> 02:15:31.102 -Say goodbye! - -02:15:35.818 --> 02:15:37.067 -Goodbye. - -02:15:41.196 --> 02:15:42.991 -- Come on! -- Elizabeth! - -02:15:44.492 --> 02:15:45.619 -Well! - -02:15:52.417 --> 02:15:53.999 -Out of my way, scum! - -02:16:06.639 --> 02:16:09.556 -My sympathies, friend. -You've no manner of luck at all. - -02:16:32.124 --> 02:16:35.334 -Come on, doggy! -It's just you and me now. - -02:16:35.419 --> 02:16:37.794 -It's you and old Jack. -Come on. - -02:16:37.878 --> 02:16:39.588 -Come on. That's a boy! - -02:16:39.631 --> 02:16:41.798 -Good boy. Come get your bone! - -02:16:41.882 --> 02:16:45.760 -That's a good boy. -Come on, a bit closer, a bit closer. - -02:16:45.845 --> 02:16:47.887 -That's it! That's it, doggy! - -02:16:47.930 --> 02:16:51.350 -Come on, you filthy, -slimy, mangy cur! - -02:16:52.602 --> 02:16:54.269 -Don't do that. No, no, no! - -02:16:54.311 --> 02:16:55.979 -I didn't mean it! I didn't... - -02:17:02.862 --> 02:17:04.404 -This ain't the armory! - -02:17:06.115 --> 02:17:07.324 -Well, well, well. - -02:17:07.410 --> 02:17:10.285 -Look what we have here, Twigg. - -02:17:10.369 --> 02:17:12.455 -Captain Jack Sparrow. - -02:17:13.622 --> 02:17:15.789 -Last time I saw you, - -02:17:15.832 --> 02:17:17.625 -you were all alone - -02:17:17.710 --> 02:17:20.462 -on a godforsaken island, - -02:17:20.504 --> 02:17:22.715 -shrinking into the distance. - -02:17:22.799 --> 02:17:25.299 -His fortunes aren't improved much. - -02:17:25.383 --> 02:17:28.804 -Worry about your own fortunes, -gentlemen. - -02:17:28.847 --> 02:17:31.890 -The deepest circle of hell -is reserved for betrayers - -02:17:31.974 --> 02:17:33.516 -and mutineers. - -02:17:37.646 --> 02:17:39.147 -So there is a curse. - -02:17:40.857 --> 02:17:42.233 -That's interesting. - -02:17:42.319 --> 02:17:44.570 -You know nothing of hell. - -02:17:53.244 --> 02:17:55.245 -That's very interesting. - -02:18:30.699 --> 02:18:33.242 -I didn't know we was takin' on captives. - -02:18:33.327 --> 02:18:36.371 -She's invoked the right of parley -with Captain Barbossa. - -02:18:36.455 --> 02:18:40.290 -- I am here to negotia... -- You will speak when spoken to! - -02:18:41.293 --> 02:18:43.378 -And ye will not lay a hand on those - -02:18:43.420 --> 02:18:45.838 -under the protection of parley. - -02:18:46.465 --> 02:18:47.632 -Aye, sir. - -02:18:50.344 --> 02:18:52.262 -My apologies, miss. - -02:18:53.347 --> 02:18:54.681 -Captain Barbossa, - -02:18:54.723 --> 02:18:59.144 -I am here to negotiate the cessation -of hostilities against Port Royal. - -02:19:00.229 --> 02:19:04.274 -A lot of long words in there, miss. -We are naught but humble pirates. - -02:19:05.359 --> 02:19:06.944 -What is it that you want? - -02:19:07.028 --> 02:19:09.320 -I want you to leave -and never come back. - -02:19:11.782 --> 02:19:14.409 -I'm disinclined -to acquiesce to your request. - -02:19:15.995 --> 02:19:18.328 -Means "no." - -02:19:19.748 --> 02:19:20.748 -Very well. - -02:19:23.460 --> 02:19:25.336 -I'll drop it. - -02:19:29.383 --> 02:19:34.011 -Me holds are burstin' with swag! -That bit of shine matters to us? - -02:19:34.095 --> 02:19:35.138 -Why? - -02:19:36.265 --> 02:19:38.558 -It's what you've been searching for. - -02:19:38.601 --> 02:19:40.267 -I recognize the ship. - -02:19:40.351 --> 02:19:43.228 -I saw it eight years ago -on the crossing from England! - -02:19:43.271 --> 02:19:44.440 -Did you now? - -02:19:47.442 --> 02:19:48.442 -Fine. - -02:19:49.444 --> 02:19:51.029 -I suppose if it is worthless, - -02:19:51.113 --> 02:19:52.947 -then there's no point in me keeping it. - -02:19:52.990 --> 02:19:54.282 -No! - -02:20:05.210 --> 02:20:07.294 -You have a name, missy? - -02:20:08.420 --> 02:20:09.463 -Elizabeth... - -02:20:09.547 --> 02:20:10.881 -...Turner. - -02:20:12.008 --> 02:20:14.093 -I'm a maid in the governor's household. - -02:20:17.388 --> 02:20:18.806 -Miss Turner! - -02:20:20.017 --> 02:20:21.266 -Turner! - -02:20:21.309 --> 02:20:22.726 -Bootstrap! - -02:20:26.773 --> 02:20:29.441 -And how does a maid come -to own a trinket such as that? - -02:20:29.484 --> 02:20:32.069 -Family heirloom, perhaps? - -02:20:32.153 --> 02:20:34.656 -I didn't steal it, -if that's what you mean. - -02:20:36.242 --> 02:20:39.325 -Very well. You hand it over, -we'll put your town to our rudder, - -02:20:39.409 --> 02:20:40.619 -and ne'er return. - -02:20:54.342 --> 02:20:55.341 -Our bargain? - -02:20:58.346 --> 02:21:00.181 -Still the guns and stow 'em. - -02:21:00.224 --> 02:21:03.059 -Signal the men, set the flags -and make good to clear port. - -02:21:03.143 --> 02:21:04.851 -Wait! You have to take me to shore. - -02:21:04.894 --> 02:21:07.521 -According to the code of -the order of the Brethren... - -02:21:07.605 --> 02:21:11.275 -Your return to shore was not part -of our negotiations nor our agreements, - -02:21:11.359 --> 02:21:12.527 -so I must do nothin'. - -02:21:12.611 --> 02:21:15.697 -Secondly, you must be a pirate -for the pirate's code to apply, - -02:21:15.739 --> 02:21:17.364 -and you're not, and thirdly... - -02:21:17.407 --> 02:21:20.159 -...the code is more of what -you'd call a guideline, - -02:21:20.202 --> 02:21:21.702 -instead of actual rules. - -02:21:21.744 --> 02:21:24.161 -Welcome aboard the Black Pearl, - -02:21:24.204 --> 02:21:25.706 -Miss Turner. - -02:21:46.393 --> 02:21:48.811 -They've taken her! -They've taken Elizabeth! - -02:21:48.895 --> 02:21:50.983 -Mr. Murtogg, remove this man. - -02:21:52.066 --> 02:21:54.151 -We have to hunt them down! -We must save her! - -02:21:54.235 --> 02:21:56.276 -And where do you propose we start? - -02:21:57.531 --> 02:22:01.198 -If you have any information concerning -my daughter, please share it. - -02:22:03.494 --> 02:22:05.245 -That Jack Sparrow! - -02:22:05.330 --> 02:22:07.582 -He talked about the Black Pearl. - -02:22:07.624 --> 02:22:09.541 -Mentioned it is more what he did. - -02:22:11.126 --> 02:22:14.254 -Ask him where it is! Make a deal -with him, he could lead us to it. - -02:22:14.297 --> 02:22:15.797 -No. - -02:22:15.882 --> 02:22:19.176 -The pirates who invaded this fort -left Sparrow locked in his cell, - -02:22:19.260 --> 02:22:22.261 -ergo they are not his allies. - -02:22:22.304 --> 02:22:25.307 -Governor, we will establish -their most likely course... - -02:22:25.391 --> 02:22:27.267 -That's not good enough! - -02:22:27.310 --> 02:22:29.269 -Mr. Turner... - -02:22:29.312 --> 02:22:32.856 -...you are not a military man, -you are not a sailor. - -02:22:33.898 --> 02:22:35.276 -You are a blacksmith. - -02:22:35.319 --> 02:22:38.153 -And this is not the moment -for rash actions! - -02:22:40.448 --> 02:22:43.449 -Do not make the mistake of thinking -you are the only man here - -02:22:43.533 --> 02:22:45.036 -who cares for Elizabeth. - -02:22:51.042 --> 02:22:52.792 -Please... - -02:22:57.172 --> 02:22:58.382 -You! Sparrow! - -02:22:58.466 --> 02:22:59.466 -Aye? - -02:22:59.509 --> 02:23:02.134 -You are familiar with that ship, -the Black Pearl? - -02:23:02.177 --> 02:23:03.552 -I've heard of it. - -02:23:03.637 --> 02:23:06.306 -Where does it make berth? - -02:23:07.308 --> 02:23:09.266 -Have you not heard the stories? - -02:23:10.977 --> 02:23:12.938 -Captain Barbossa - -02:23:12.980 --> 02:23:14.731 -and his crew of miscreants - -02:23:14.816 --> 02:23:17.401 -sail from the dreaded Isla de Muerte. - -02:23:17.485 --> 02:23:20.279 -It's an island that -cannot be found, except - -02:23:20.322 --> 02:23:23.406 -by those who already know where it is. - -02:23:23.490 --> 02:23:25.157 -The ship's real enough, - -02:23:25.200 --> 02:23:28.661 -therefore its anchorage must be -a real place. Where is it? - -02:23:29.664 --> 02:23:30.831 -Why ask me? - -02:23:31.499 --> 02:23:33.083 -Because you're a pirate. - -02:23:33.166 --> 02:23:35.836 -And you want to turn -pirate yourself. ls that it? - -02:23:37.087 --> 02:23:38.088 -Never! - -02:23:41.841 --> 02:23:43.510 -They took Miss Swann. - -02:23:43.553 --> 02:23:45.387 -Oh. So it is that you found a girl! - -02:23:45.471 --> 02:23:47.263 -I see. - -02:23:47.347 --> 02:23:50.101 -If you're intending to brave all, -hasten to her rescue, - -02:23:50.185 --> 02:23:52.144 -and so win fair lady's heart... - -02:23:52.186 --> 02:23:54.813 -...you'll have to do it alone, mate. - -02:23:54.856 --> 02:23:56.939 -I see no profit in it for me. - -02:23:58.024 --> 02:23:59.276 -I can get you out of here. - -02:23:59.360 --> 02:24:01.026 -How's that? The key's run off. - -02:24:01.069 --> 02:24:02.695 -I helped build these cells. - -02:24:02.779 --> 02:24:05.532 -These are half-pin barrel hinges. - -02:24:06.826 --> 02:24:10.119 -With the right leverage, -and the proper application of strength, - -02:24:11.246 --> 02:24:12.664 -the door will lift free. - -02:24:15.042 --> 02:24:16.292 -What's your name? - -02:24:16.376 --> 02:24:18.294 -Will Turner. - -02:24:19.588 --> 02:24:21.923 -That would be short for William, -I imagine. - -02:24:22.008 --> 02:24:23.174 -Good, strong name. - -02:24:24.176 --> 02:24:26.092 -No doubt named for your father? - -02:24:27.723 --> 02:24:28.804 -Yes. - -02:24:28.889 --> 02:24:30.806 -Uh-huh. - -02:24:31.683 --> 02:24:33.017 -Well, Mr. Turner, - -02:24:33.058 --> 02:24:34.268 -I've changed me mind. - -02:24:34.937 --> 02:24:37.938 -If you spring me from this cell, -I swear, on pain of death, - -02:24:38.023 --> 02:24:40.232 -I shall take you to the Black Pearl, - -02:24:40.275 --> 02:24:41.942 -and your bonny lass. - -02:24:42.028 --> 02:24:44.029 -Do we have an accord? - -02:24:47.532 --> 02:24:49.366 -- Agreed. -- Agreed. - -02:24:49.409 --> 02:24:50.576 -Get me out. - -02:24:54.080 --> 02:24:57.875 -- Hurry! Someone will have heard that. -- Not without my effects. - -02:25:04.466 --> 02:25:05.966 -We're going to steal the ship? - -02:25:07.761 --> 02:25:08.761 -That ship? - -02:25:08.845 --> 02:25:10.677 -Commandeer. - -02:25:10.762 --> 02:25:13.015 -We're going to commandeer that ship. - -02:25:13.099 --> 02:25:14.184 -Nautical term. - -02:25:14.853 --> 02:25:16.936 -One question about your business, boy, - -02:25:17.020 --> 02:25:18.437 -or there's no use going. - -02:25:18.522 --> 02:25:20.021 -This girl... - -02:25:20.105 --> 02:25:22.815 -...how far are you willing to go -to save her? - -02:25:22.900 --> 02:25:24.236 -I'd die for her. - -02:25:24.278 --> 02:25:25.485 -Oh, good. - -02:25:25.569 --> 02:25:27.571 -No worries then. - -02:25:46.592 --> 02:25:49.134 -This is either madness or brilliance. - -02:25:49.929 --> 02:25:53.556 -It's remarkable how often -those two traits coincide. - -02:26:23.210 --> 02:26:27.006 -Everyone stay calm! -We're taking over the ship. - -02:26:27.090 --> 02:26:28.799 -Aye! Avast! - -02:26:32.012 --> 02:26:34.346 -This ship cannot be crewed by two men. - -02:26:35.223 --> 02:26:37.018 -You'll never make it out of the bay. - -02:26:37.059 --> 02:26:38.684 -Son... - -02:26:39.726 --> 02:26:42.562 -...I'm Captain Jack Sparrow. - -02:26:42.646 --> 02:26:44.190 -Savvy? - -02:26:47.693 --> 02:26:48.693 -Commodore! - -02:26:48.736 --> 02:26:51.362 -- Sir! -- They're taking the Dauntless! - -02:26:53.034 --> 02:26:54.116 -Commodore! - -02:26:54.200 --> 02:26:56.535 -They're taking the ship! - -02:26:57.287 --> 02:26:59.872 -Sparrow and Turner! -They're taking the Dauntless! - -02:26:59.914 --> 02:27:01.372 -Rash, Turner. - -02:27:01.457 --> 02:27:03.041 -Too rash. - -02:27:04.585 --> 02:27:08.798 -That is, without doubt, -the worst pirate I have ever seen. - -02:27:12.094 --> 02:27:13.385 -Here they come. - -02:27:18.224 --> 02:27:20.475 -Bring her around! -Bring her around! - -02:27:27.024 --> 02:27:30.194 -Search every cabin, every hold, -down to the bilges. - -02:27:43.333 --> 02:27:46.126 -Check the aft! - -02:27:46.211 --> 02:27:48.586 -Sailors, back to the Interceptor! -Now! - -02:27:48.629 --> 02:27:50.005 -Quickly, men - -02:27:51.383 --> 02:27:52.674 -Whoa! - -02:27:55.093 --> 02:27:59.015 -Thank you, commodore, -for getting us ready to make way. - -02:27:59.099 --> 02:28:01.683 -We'd have had a hard time -of it by ourselves. - -02:28:04.938 --> 02:28:06.979 -Set topsails and clear up this mess. - -02:28:07.064 --> 02:28:09.607 -With the wind a quarter astern, -we won't catch them! - -02:28:09.692 --> 02:28:12.611 -I don't need to. Just get them -in range of the long nines. - -02:28:12.696 --> 02:28:14.779 -Hands, come about! Run out the guns! - -02:28:14.822 --> 02:28:16.198 -Bring out the guns! - -02:28:16.282 --> 02:28:18.867 -We are to fire on our own ship, sir? - -02:28:18.951 --> 02:28:22.787 -I'd rather see her at the bottom of the -ocean than in the hands of a pirate. - -02:28:24.081 --> 02:28:27.417 -Commodore! He's disabled -the rudder chain, sir. - -02:28:31.130 --> 02:28:33.131 -Abandon ship! - -02:28:36.969 --> 02:28:39.386 -Let go the gear -and sheet home. - -02:28:39.471 --> 02:28:41.931 -That's got to be the best pirate -I've ever seen. - -02:28:43.143 --> 02:28:45.769 -So it would seem. - -02:28:54.236 --> 02:28:56.319 -When I was a lad, -living in England, - -02:28:56.404 --> 02:28:58.281 -my mother raised me by herself. - -02:28:58.366 --> 02:29:00.324 -After she died, I came out here, - -02:29:00.409 --> 02:29:02.243 -looking for my father. - -02:29:03.703 --> 02:29:04.829 -Is that so? - -02:29:06.040 --> 02:29:07.582 -My father, - -02:29:07.666 --> 02:29:09.041 -Bill Turner? - -02:29:09.126 --> 02:29:12.713 -At the jail, it was only after you -learned my name that you agreed to help. - -02:29:12.797 --> 02:29:15.506 -Since that's what I wanted, -I didn't press the matter. - -02:29:15.549 --> 02:29:17.132 -I'm not a simpleton, Jack. - -02:29:17.175 --> 02:29:19.176 -You knew my father. - -02:29:25.350 --> 02:29:26.391 -I knew him. - -02:29:26.476 --> 02:29:29.395 -Probably one of the few -who knew him as William Turner. - -02:29:29.480 --> 02:29:32.899 -Everyone else just called him -"Bootstrap," or "Bootstrap Bill." - -02:29:32.982 --> 02:29:33.982 -Bootstrap? - -02:29:34.986 --> 02:29:37.403 -Good man. -Good pirate. - -02:29:37.488 --> 02:29:39.573 -I swear, you look just like him. - -02:29:39.657 --> 02:29:40.698 -It's not true. - -02:29:40.741 --> 02:29:42.534 -He was a merchant sailor. - -02:29:42.619 --> 02:29:44.869 -A good, respectable man -who obeyed the law. - -02:29:44.953 --> 02:29:47.120 -He was a bloody pirate, a scallywag. - -02:29:48.498 --> 02:29:51.209 -My father was not a pirate! - -02:29:52.377 --> 02:29:54.377 -Put it away, son. - -02:29:54.462 --> 02:29:56.379 -It's not worth you getting beat again. - -02:29:56.464 --> 02:29:57.591 -You didn't beat me. - -02:29:57.675 --> 02:30:01.010 -You ignored the rules of engagement. -In a fair fight, I'd kill you. - -02:30:01.052 --> 02:30:03.887 -That's not much incentive -for me to fight fair, is it? - -02:30:11.229 --> 02:30:14.483 -Now as long as you're just -hanging there, pay attention. - -02:30:14.567 --> 02:30:17.068 -The only rules -that really matter are these: - -02:30:17.153 --> 02:30:21.030 -What a man can do, -and what a man can't do. - -02:30:21.740 --> 02:30:22.907 -For instance, - -02:30:22.991 --> 02:30:26.117 -you can accept that your father -was a pirate and a good man, - -02:30:26.202 --> 02:30:27.245 -or you can't. - -02:30:27.287 --> 02:30:30.832 -Pirate is in your blood, boy, so -you'll have to square with that someday. - -02:30:31.707 --> 02:30:33.875 -Now, me, for example. -I could let you drown, - -02:30:33.918 --> 02:30:38.421 -but I can't bring this ship into Tortuga -all by me onesies. Savvy? - -02:30:38.756 --> 02:30:39.757 -So... - -02:30:44.804 --> 02:30:48.139 -Can you sail under -the command of a pirate? - -02:30:49.394 --> 02:30:50.725 -Or can you not? - -02:30:53.437 --> 02:30:54.479 -Tortuga? - -02:30:54.565 --> 02:30:56.314 -Tortuga. - -02:31:18.378 --> 02:31:20.798 -More importantly, it is indeed - -02:31:20.841 --> 02:31:22.717 -a sad life that has never -breathed deep - -02:31:22.801 --> 02:31:25.968 -the sweet, proliferous bouquet -that is Tortuga. Savvy? - -02:31:27.723 --> 02:31:28.847 -What do you think? - -02:31:33.144 --> 02:31:34.228 -It'll linger. - -02:31:34.313 --> 02:31:38.315 -I'll tell you, mate, if every town -in the world were like this one, - -02:31:38.399 --> 02:31:40.859 -no man would ever feel unwanted. - -02:31:42.821 --> 02:31:43.905 -Scarlett! - -02:31:45.824 --> 02:31:47.157 -Not sure I deserved that. - -02:31:48.951 --> 02:31:50.119 -Giselle! - -02:31:50.162 --> 02:31:51.160 -Who was she? - -02:31:51.244 --> 02:31:52.246 -What? - -02:31:54.540 --> 02:31:55.832 -I may have deserved that. - -02:31:58.086 --> 02:32:01.212 -Curse you for breathing, -you slack-jawed idiot! - -02:32:03.548 --> 02:32:05.675 -Mother's love! - -02:32:05.760 --> 02:32:06.760 -Jack! - -02:32:07.762 --> 02:32:10.890 -You should know better than to -wake a man when he's sleepin'. - -02:32:10.974 --> 02:32:14.852 -- It's bad luck. -- Fortunately, I know how to counter it. - -02:32:14.937 --> 02:32:18.229 -The man who did the waking buys -the man who was sleeping a drink, - -02:32:18.314 --> 02:32:21.733 -and the man who was sleeping drinks -it while listening to a proposition - -02:32:21.817 --> 02:32:23.526 -from the man who did the waking. - -02:32:25.695 --> 02:32:27.531 -Aye, that'll about do it. - -02:32:32.370 --> 02:32:34.622 -Blast! I'm already awake! - -02:32:34.706 --> 02:32:36.081 -That was for the smell. - -02:32:39.377 --> 02:32:40.376 -Eh... - -02:32:46.551 --> 02:32:48.050 -Keep a sharp eye. - -02:32:55.183 --> 02:32:56.267 -Now... - -02:32:56.352 --> 02:32:58.813 -...what's the nature -of this venture of your'n? - -02:33:00.647 --> 02:33:05.069 -I'm going after the Black Pearl. - -02:33:06.570 --> 02:33:08.071 -I know where it's going to be, - -02:33:08.115 --> 02:33:09.905 -and I'm gonna take it. - -02:33:10.949 --> 02:33:11.951 -Jack, - -02:33:12.035 --> 02:33:14.327 -it's a fool's errand! - -02:33:14.412 --> 02:33:17.748 -Well, you know better than me -the tales of the Black Pearl! - -02:33:17.791 --> 02:33:20.333 -That's why I know -what Barbossa is up to. - -02:33:20.919 --> 02:33:22.252 -All I need is a crew. - -02:33:22.962 --> 02:33:24.962 -What I hear tell of Captain Barbossa, - -02:33:25.046 --> 02:33:28.049 -he's not a man to suffer fools, -nor strike a bargain with one! - -02:33:28.092 --> 02:33:30.300 -I'd say it's a good thing -I'm not a fool then. - -02:33:30.386 --> 02:33:31.511 -Prove me wrong! - -02:33:32.177 --> 02:33:35.516 -What makes you think Barbossa -will give up his ship to you? - -02:33:35.600 --> 02:33:38.935 -Let's just say -it's a matter of leverage, eh? - -02:33:42.314 --> 02:33:43.606 -Hm? - -02:33:45.776 --> 02:33:46.818 -Mm. - -02:33:46.902 --> 02:33:48.277 -Huh? - -02:33:48.319 --> 02:33:49.446 -Hm... - -02:33:49.530 --> 02:33:50.530 -Mm-hm-hm. - -02:33:55.161 --> 02:33:56.161 -The kid? - -02:33:57.747 --> 02:34:00.749 -That is the child -of Bootstrap Bill Turner. - -02:34:01.834 --> 02:34:04.295 -His only child. Savvy? - -02:34:04.379 --> 02:34:06.296 -Is he now? - -02:34:09.259 --> 02:34:11.635 -Leverage, says you. - -02:34:11.719 --> 02:34:14.304 -I think I feel -a change in the wind, says I. - -02:34:14.387 --> 02:34:16.139 -- Mm. -- I'll find us a crew. - -02:34:16.182 --> 02:34:19.099 -There's bound to be some sailors -on this rock, crazy as you. - -02:34:19.143 --> 02:34:21.519 -One can only hope. - -02:34:21.604 --> 02:34:24.353 -- Take what you can! -- Give nothin' back! - -02:34:49.214 --> 02:34:51.007 -You'll be dining with the captain, - -02:34:51.050 --> 02:34:53.426 -and he requests you wear this. - -02:34:54.385 --> 02:34:57.972 -Tell the captain I'm "disinclined -to acquiesce to his request." - -02:34:59.140 --> 02:35:01.392 -He said you'd say that. - -02:35:01.477 --> 02:35:03.853 -He also said, if that be the case... - -02:35:03.938 --> 02:35:05.687 -...you'll be dining with the crew, - -02:35:05.730 --> 02:35:07.565 -and you'll be naked. - -02:35:13.989 --> 02:35:15.114 -Fine. - -02:35:31.756 --> 02:35:35.344 -There's no need to stand on ceremony -no call to impress anyone. - -02:35:35.387 --> 02:35:37.762 -You must be hungry. - -02:35:55.196 --> 02:35:56.404 -Try the wine. - -02:36:01.244 --> 02:36:04.246 -And the apples. One of those next. - -02:36:12.547 --> 02:36:14.214 -It's poisoned. - -02:36:15.758 --> 02:36:18.093 -There would be no sense -to be killing you. - -02:36:18.136 --> 02:36:21.596 -Then release me. You have your trinket. -I'm of no further value to you. - -02:36:25.603 --> 02:36:27.644 -You don't know what this is, - -02:36:27.729 --> 02:36:29.105 -do you? - -02:36:29.190 --> 02:36:31.439 -It's a pirate medallion. - -02:36:31.481 --> 02:36:33.566 -This is Aztec gold. - -02:36:34.444 --> 02:36:37.236 -One of 882 identical pieces - -02:36:37.279 --> 02:36:40.866 -they delivered in a stone chest -to Cortés himself. - -02:36:41.952 --> 02:36:46.163 -Blood money paid to stem the slaughter -he wreaked upon them with his armies. - -02:36:46.247 --> 02:36:50.083 -But the greed of Cortés was insatiable. - -02:36:50.126 --> 02:36:53.627 -So the heathen gods -placed upon the gold... - -02:36:55.507 --> 02:36:57.133 -...a terrible curse. - -02:36:58.760 --> 02:37:03.012 -Any mortal that removes but -a single piece from that stone chest... - -02:37:04.015 --> 02:37:06.474 -...shall be punished for eternity. - -02:37:08.769 --> 02:37:12.147 -I hardly believe in ghost stories -any more, Captain Barbossa. - -02:37:12.232 --> 02:37:13.483 -Aye. - -02:37:14.276 --> 02:37:17.819 -That's exactly what I thought -when we were first told the tale. - -02:37:17.862 --> 02:37:20.781 -Buried on an Isle of the Dead -what cannot be found, - -02:37:20.823 --> 02:37:22.700 -except for those who know where it is. - -02:37:24.409 --> 02:37:25.743 -Find it, we did. - -02:37:27.413 --> 02:37:28.746 -There be the chest. - -02:37:28.830 --> 02:37:30.625 -Inside be the gold. - -02:37:31.583 --> 02:37:34.001 -And we took 'em all! - -02:37:34.045 --> 02:37:36.046 -We spent 'em and traded 'em, - -02:37:36.130 --> 02:37:37.798 -and frittered 'em away - -02:37:37.840 --> 02:37:40.591 -on drink and food -and pleasurable company. - -02:37:40.675 --> 02:37:42.678 -The more we gave 'em away, - -02:37:42.720 --> 02:37:45.389 -the more we came to realize... - -02:37:46.683 --> 02:37:48.850 -...the drink would not satisfy. - -02:37:50.103 --> 02:37:52.854 -Food turned to ash in our mouths... - -02:37:53.522 --> 02:37:56.107 -...and all the pleasurable company -in the world - -02:37:56.191 --> 02:37:58.193 -could not slake our lust. - -02:38:00.071 --> 02:38:02.864 -We are cursed men, Miss Turner. - -02:38:04.618 --> 02:38:07.287 -Compelled by greed we were, but now... - -02:38:07.371 --> 02:38:10.705 -...we are consumed by it. - -02:38:21.884 --> 02:38:24.802 -There is one way we can end our curse. - -02:38:28.891 --> 02:38:31.851 -All the scattered pieces -of the Aztec gold - -02:38:31.893 --> 02:38:33.311 -must be restored, - -02:38:33.395 --> 02:38:35.814 -and the blood repaid. - -02:38:38.568 --> 02:38:39.943 -Thanks to ye, - -02:38:40.028 --> 02:38:42.155 -we have the final piece. - -02:38:44.198 --> 02:38:46.490 -And the... blood to be repaid? - -02:38:46.575 --> 02:38:49.077 -That's why there's no sense -to be killing ya. - -02:38:49.871 --> 02:38:50.870 -Yet. - -02:38:52.914 --> 02:38:54.416 -Apple? - -02:38:56.962 --> 02:38:59.421 -Ha-ha. Hah! - -02:38:59.464 --> 02:39:02.381 -Arrgh! - -02:39:02.424 --> 02:39:03.967 -No! - -02:39:11.267 --> 02:39:12.267 -I'm curious. - -02:39:12.352 --> 02:39:15.269 -After killing me, what is it -you're planning on doing next? - -02:40:18.835 --> 02:40:21.044 -Look! - -02:40:21.129 --> 02:40:24.047 -The moonlight shows us -for what we really are. - -02:40:24.839 --> 02:40:28.093 -We are not among the living -and so we cannot die. - -02:40:28.177 --> 02:40:29.843 -But neither are we dead. - -02:40:31.096 --> 02:40:34.891 -For too long I've been parched of thirst -and unable to quench it. - -02:40:34.976 --> 02:40:37.351 -Too long I've been starvin' to death, - -02:40:37.436 --> 02:40:39.061 -and haven't died! - -02:40:39.687 --> 02:40:41.481 -I feel nothing. - -02:40:42.274 --> 02:40:45.192 -Not the wind on my face, -nor the spray of the sea... - -02:40:46.611 --> 02:40:48.778 -...nor the warmth of a woman's flesh. - -02:40:49.781 --> 02:40:54.286 -You best start believing -in ghost stories, Miss Turner. - -02:40:54.370 --> 02:40:55.368 -You're in one! - -02:41:14.430 --> 02:41:16.390 -What are you looking at? -Back to work! - -02:41:25.609 --> 02:41:27.276 -Feast your eyes, captain. - -02:41:27.360 --> 02:41:30.278 -All of them, -faithful hands before the mast. - -02:41:30.362 --> 02:41:33.573 -Every man worth his salt... - -02:41:33.616 --> 02:41:35.659 -...and crazy to boot. - -02:41:35.744 --> 02:41:38.579 -So this is your able-bodied crew? - -02:41:44.419 --> 02:41:45.419 -You, sailor! - -02:41:45.504 --> 02:41:46.879 -Cotton, sir. - -02:41:46.922 --> 02:41:48.713 -Mr. Cotton. - -02:41:48.756 --> 02:41:52.091 -Do you have the courage and fortitude -to follow orders and stay true - -02:41:52.176 --> 02:41:53.761 -in the face of danger and death? - -02:41:53.803 --> 02:41:55.512 -Mr. Cotton! - -02:41:55.595 --> 02:41:56.722 -Answer, man! - -02:41:56.765 --> 02:41:58.182 -He's a mute, sir. - -02:41:58.266 --> 02:41:59.976 -Poor devil had his tongue cut out. - -02:42:00.061 --> 02:42:02.101 -So he trained the parrot -to talk for him. - -02:42:02.186 --> 02:42:04.064 -No one's yet figured how. - -02:42:07.274 --> 02:42:08.901 -Mr. Cotton's parrot. - -02:42:09.902 --> 02:42:11.403 -Same question. - -02:42:11.446 --> 02:42:14.198 -- Wind in your sails. -- Wind in your sails. - -02:42:15.326 --> 02:42:17.408 -Mostly, we figure that means "yes." - -02:42:17.451 --> 02:42:18.955 -Of course it does. - -02:42:19.037 --> 02:42:20.037 -Satisfied? - -02:42:20.997 --> 02:42:22.998 -Well, you've proved they're mad! - -02:42:23.083 --> 02:42:24.959 -And what's the benefit for us? - -02:42:35.470 --> 02:42:36.553 -Anamaria! - -02:42:38.473 --> 02:42:40.808 -I suppose you didn't deserve -that one, either. - -02:42:40.892 --> 02:42:42.809 -No, that one I deserved. - -02:42:42.851 --> 02:42:44.603 -You stole my boat! - -02:42:44.646 --> 02:42:45.728 -Actually... - -02:42:47.816 --> 02:42:50.192 -Borrowed. Borrowed, without permission, - -02:42:50.278 --> 02:42:52.860 -but with every intention -of bringing it back to you. - -02:42:52.945 --> 02:42:54.362 -But you didn't! - -02:42:54.446 --> 02:42:55.822 -You'll get another one! - -02:42:57.200 --> 02:42:58.200 -I will! - -02:42:58.285 --> 02:42:59.659 -A better one. - -02:42:59.743 --> 02:43:01.660 -A better one! - -02:43:01.744 --> 02:43:03.330 -- That one! -- What one? - -02:43:06.042 --> 02:43:07.209 -That one? - -02:43:10.671 --> 02:43:12.381 -Aye. That one. - -02:43:12.465 --> 02:43:14.048 -- What say you? -- Aye! - -02:43:14.133 --> 02:43:15.508 -Aye! - -02:43:15.593 --> 02:43:17.593 -Anchors away! - -02:43:17.677 --> 02:43:19.887 -No, no, no, no, no! -It's frightful bad luck - -02:43:19.972 --> 02:43:21.473 -to bring a woman aboard, sir. - -02:43:21.516 --> 02:43:24.183 -It'll be far worse not to have her. - -02:43:57.886 --> 02:44:00.928 -How can we sail to an island -that nobody can find, - -02:44:01.013 --> 02:44:03.473 -with a compass that doesn't work? - -02:44:03.557 --> 02:44:05.517 -Aye, the compass doesn't point north, - -02:44:05.560 --> 02:44:08.393 -but we're not trying -to find north, are we? - -02:44:19.073 --> 02:44:21.449 -We should drop canvas, sir. - -02:44:21.533 --> 02:44:23.575 -She can hold a bit longer. - -02:44:25.787 --> 02:44:29.333 -What's in your head that's put you -in such a fine mood, captain? - -02:44:29.417 --> 02:44:31.417 -We're catching up. - -02:44:46.434 --> 02:44:48.434 -Time to go, poppet. - -02:45:43.991 --> 02:45:48.410 -Dead men tell no tales... - -02:45:50.955 --> 02:45:53.624 -Puts a chill in the bones, -how many honest sailors - -02:45:53.667 --> 02:45:55.500 -have been claimed by this passage. - -02:46:10.975 --> 02:46:13.351 -How is it that Jack -came by that compass? - -02:46:13.394 --> 02:46:16.605 -Not a lot's known about Jack Sparrow -'fore he showed up in Tortuga - -02:46:16.689 --> 02:46:19.358 -with a mind to go after -the treasure of Isla de Muerte. - -02:46:19.443 --> 02:46:20.692 -That was before I met him, - -02:46:20.777 --> 02:46:22.943 -back when he was captain -of the Black Pearl. - -02:46:23.821 --> 02:46:24.822 -What? - -02:46:28.494 --> 02:46:29.952 -He failed to mention that. - -02:46:30.036 --> 02:46:32.287 -He plays things closer to the vest now. - -02:46:32.371 --> 02:46:34.457 -And a hard-learned lesson it was. - -02:46:34.541 --> 02:46:37.418 -Three days out on the venture, -the first mate says, - -02:46:37.502 --> 02:46:40.587 -"Everything's an equal share. -That should mean the location - -02:46:40.671 --> 02:46:44.050 -of the treasure too," -so Jack gives up the bearings. - -02:46:44.218 --> 02:46:46.385 -That night, there was a mutiny. - -02:46:47.428 --> 02:46:50.097 -They marooned Jack on an island -and left him to die. - -02:46:50.182 --> 02:46:52.850 -But not before he'd -gone mad with the heat. - -02:46:54.560 --> 02:46:56.229 -Ah... - -02:46:56.939 --> 02:46:59.358 -So that's the reason for all the... - -02:47:01.400 --> 02:47:03.109 -Reason's got nothing to do with it. - -02:47:04.071 --> 02:47:06.239 -Now, Will, when a pirate's marooned, - -02:47:06.323 --> 02:47:09.075 -he's given a pistol with a single shot. -One shot... - -02:47:09.117 --> 02:47:12.452 -Well, that won't do much good hunting, -nor to be rescued. - -02:47:12.537 --> 02:47:15.748 -But after three weeks -of a starving belly and thirst, - -02:47:15.791 --> 02:47:19.168 -that pistol starts to look -real friendly. - -02:47:19.253 --> 02:47:21.254 -But Jack, he escaped the island, - -02:47:21.338 --> 02:47:22.921 -and still has that single shot. - -02:47:23.005 --> 02:47:25.590 -Oh, he won't use it, though, -save on one man. - -02:47:26.592 --> 02:47:28.635 -His mutinous first mate. - -02:47:28.719 --> 02:47:30.679 -- Barbossa. -- Aye. - -02:47:31.931 --> 02:47:34.892 -- How did Jack get off the island? -- Well, I'll tell ye. - -02:47:34.935 --> 02:47:37.062 -He waded out into the shallows, - -02:47:37.105 --> 02:47:39.688 -and he waited there three days -and three nights, - -02:47:39.773 --> 02:47:43.609 -till all manner of sea creatures -came acclimated to his presence. - -02:47:44.610 --> 02:47:46.153 -And on the fourth morning, - -02:47:46.238 --> 02:47:50.366 -he roped a couple of sea turtles, -lashed them together and made a raft. - -02:47:52.619 --> 02:47:55.035 -- He roped a couple of sea turtles. -- Aye. - -02:47:55.120 --> 02:47:56.414 -Sea turtles! - -02:47:58.667 --> 02:48:00.667 -What did he use for rope? - -02:48:05.632 --> 02:48:07.215 -Human hair. - -02:48:08.217 --> 02:48:09.634 -From my back. - -02:48:10.802 --> 02:48:12.179 -Let go the anchor! - -02:48:12.264 --> 02:48:14.639 -Lower the anchor line! - -02:48:14.724 --> 02:48:17.141 -Young Mr. Turner and I are to go ashore. - -02:48:17.767 --> 02:48:18.895 -Captain. - -02:48:18.979 --> 02:48:20.687 -What if the worst should happen? - -02:48:21.565 --> 02:48:24.066 -- Keep to the code. -- Aye. The code. - -02:48:49.885 --> 02:48:51.051 -Move. - -02:48:51.135 --> 02:48:53.136 -Ten years of hoarding swag! - -02:48:53.179 --> 02:48:55.679 -And now we finally get to spend it! - -02:48:58.518 --> 02:48:59.518 -Oh. - -02:49:03.022 --> 02:49:05.816 -Once we're quit of the curse, -we'll be rich men... - -02:49:06.526 --> 02:49:10.235 -...and you can buy an eye what -actually fits and is made of glass. - -02:49:10.320 --> 02:49:13.240 -This one does splinter -something terrible! - -02:49:13.325 --> 02:49:15.534 -Stop rubbing it! - -02:49:16.660 --> 02:49:17.786 -Oh! - -02:49:35.179 --> 02:49:38.223 -What code is Gibbs to keep to -if the worst should happen? - -02:49:38.265 --> 02:49:40.557 -The pirates' code. - -02:49:40.643 --> 02:49:42.059 -Any man who falls behind... - -02:49:42.102 --> 02:49:44.436 -...is left behind. - -02:49:45.773 --> 02:49:48.066 -No heroes amongst thieves, eh? - -02:49:48.778 --> 02:49:51.861 -You know, for having -such a bleak outlook on pirates, - -02:49:51.904 --> 02:49:54.822 -you're well on your way -to becoming one. - -02:49:55.324 --> 02:49:56.908 -Sprung a man from jail... - -02:49:58.244 --> 02:50:00.744 -...commandeered a ship of the fleet, - -02:50:00.787 --> 02:50:03.331 -sailed with a buccaneer crew -out of Tortuga... - -02:50:05.501 --> 02:50:08.752 -...and you're completely -obsessed with treasure! - -02:50:11.507 --> 02:50:12.632 -That's not true. - -02:50:13.342 --> 02:50:15.092 -I am not obsessed with treasure. - -02:50:22.309 --> 02:50:25.060 -Not all treasure -is silver and gold, mate. - -02:50:25.103 --> 02:50:27.147 -Gentlemen, the time has come! - -02:50:27.231 --> 02:50:28.441 -Hurrah! - -02:50:28.525 --> 02:50:30.650 -Salvation is nigh! - -02:50:30.735 --> 02:50:32.151 -Yeah! - -02:50:32.235 --> 02:50:34.946 -- Our torment is near an end! -- Elizabeth. - -02:50:35.614 --> 02:50:38.491 -For ten years, -we've been tested and tried, - -02:50:38.575 --> 02:50:40.201 -and each man-jack of you here - -02:50:40.286 --> 02:50:43.288 -has proved his mettle 100 times over. - -02:50:43.330 --> 02:50:45.623 -And 100 times again! - -02:50:45.666 --> 02:50:47.750 -Yeah! - -02:50:47.792 --> 02:50:49.377 -Suffered, I have! - -02:50:50.128 --> 02:50:51.963 -Punished, we were, - -02:50:52.006 --> 02:50:53.547 -the lot of us, - -02:50:53.631 --> 02:50:56.967 -disproportionate to our crime! - -02:50:57.053 --> 02:50:58.845 -Right! - -02:50:58.929 --> 02:51:00.137 -Here it is! - -02:51:03.808 --> 02:51:07.437 -The cursed treasure of Cortés himself. - -02:51:09.438 --> 02:51:11.983 -Every last piece that went astray, - -02:51:12.026 --> 02:51:13.777 -we have returned. - -02:51:13.819 --> 02:51:15.527 -Save for this! - -02:51:15.612 --> 02:51:17.030 -- Yeah! -- Jack! - -02:51:17.114 --> 02:51:19.741 -Not yet! - -02:51:19.825 --> 02:51:22.326 -We'll wait for the opportune moment. - -02:51:22.410 --> 02:51:25.161 -...Despairing -of ever finding the lass. - -02:51:25.204 --> 02:51:27.041 -When's that? - -02:51:27.125 --> 02:51:29.834 -When it's of greatest profit to you? - -02:51:29.877 --> 02:51:31.210 -May I ask you something? - -02:51:32.587 --> 02:51:34.922 -Have I ever given you -reason not to trust me? - -02:51:36.300 --> 02:51:37.299 -Do us a favor. - -02:51:37.342 --> 02:51:39.468 -I know it's difficult for you, - -02:51:39.511 --> 02:51:41.553 -but please, stay here, - -02:51:41.638 --> 02:51:44.515 -and try not to do anything stupid. - -02:51:47.185 --> 02:51:49.687 -And who among us -has paid the blood sacrifice - -02:51:49.772 --> 02:51:52.023 -- owed to the heathen gods? -- Aye! - -02:51:52.108 --> 02:51:54.943 -And whose blood must yet be paid? - -02:51:55.027 --> 02:51:56.693 -Hers! - -02:51:58.863 --> 02:52:03.449 -You know the first thing I'm going -to do after the curse is lifted? - -02:52:05.787 --> 02:52:09.206 -Eat a whole bushel of apples! - -02:52:16.965 --> 02:52:18.966 -Begun by blood, - -02:52:19.050 --> 02:52:21.052 -by blood undone. - -02:52:25.514 --> 02:52:26.558 -Sorry, Jack. - -02:52:26.642 --> 02:52:29.183 -I'm not going to be your leverage. - -02:52:38.402 --> 02:52:40.570 -That's it? - -02:52:40.612 --> 02:52:42.282 -Waste not. - -02:53:20.278 --> 02:53:21.612 -Did it work? - -02:53:21.654 --> 02:53:24.531 -- I don't feel no different. -- How do we tell? - -02:53:31.622 --> 02:53:33.123 -You're not dead! - -02:53:34.167 --> 02:53:36.668 -No. - -02:53:36.753 --> 02:53:38.085 -He shot me! - -02:53:38.128 --> 02:53:41.673 -It didn't work! -The curse is still upon us! - -02:53:46.763 --> 02:53:49.224 -You! Maid! Your father, -what was his name? - -02:53:49.308 --> 02:53:51.558 -Was your father William Turner? - -02:53:51.893 --> 02:53:53.142 -No. - -02:53:53.185 --> 02:53:56.688 -Where's his child? The child that sailed -from England eight years ago? - -02:53:56.773 --> 02:53:59.816 -The child in whose veins flows -the blood of William Turner? - -02:53:59.900 --> 02:54:01.151 -Where? - -02:54:07.532 --> 02:54:08.700 -You two! - -02:54:09.825 --> 02:54:11.912 -- You brought us the wrong person! -- Yeah! - -02:54:12.871 --> 02:54:13.871 -No! - -02:54:14.625 --> 02:54:17.333 -She had the medallion! -She's the proper age! - -02:54:17.418 --> 02:54:20.045 -She said her name -was Turner. You heard her! - -02:54:21.923 --> 02:54:24.591 -- I think she lied to us! -- Yeah! - -02:54:25.842 --> 02:54:28.177 -You brought us here for nothing! - -02:54:28.220 --> 02:54:32.348 -I won't take questionin' or second -guesses, not from you, Mr. Twigg! - -02:54:32.391 --> 02:54:36.688 -Who's to blame him? Every decision -you made has led us from bad to worse! - -02:54:38.898 --> 02:54:41.483 -It was you who sent -Bootstrap to the depths! - -02:54:41.526 --> 02:54:42.525 -Yeah! - -02:54:45.320 --> 02:54:47.905 -And it's you who brought us -here in the first place! - -02:54:49.701 --> 02:54:52.368 -If any coward here dare challenge me, -let him speak! - -02:54:54.663 --> 02:54:56.581 -I say, we cut her throat, - -02:54:56.666 --> 02:54:58.291 -and spill all her blood! - -02:54:58.375 --> 02:54:59.376 -Just in case. - -02:54:59.419 --> 02:55:00.876 -- Yeah! -- Yeah! - -02:55:00.961 --> 02:55:03.504 -Yeah! - -02:55:09.469 --> 02:55:10.720 -The medallion! - -02:55:10.762 --> 02:55:12.055 -She's taken it! - -02:55:12.097 --> 02:55:16.601 -Get after her, -you feckless pack of ingrates! - -02:55:22.190 --> 02:55:25.192 -- Where's the oars? -- There's no oars! - -02:55:25.235 --> 02:55:28.071 -The oars have gone missing! -Find them! - -02:55:37.164 --> 02:55:38.915 -You! - -02:55:40.250 --> 02:55:41.918 -You're supposed to be dead! - -02:55:41.961 --> 02:55:43.295 -Am I not? - -02:55:45.255 --> 02:55:46.255 -Oh. - -02:55:53.347 --> 02:55:54.804 -Puh-la-lem. - -02:55:56.185 --> 02:55:58.435 -Puh-la-lie-lay-lool. - -02:56:01.022 --> 02:56:02.646 -Pah-lee-nee... - -02:56:02.731 --> 02:56:05.483 -...parsnip... par-sley... - -02:56:05.568 --> 02:56:07.568 -...par... partner, pardoner... - -02:56:07.611 --> 02:56:08.610 -Parley? - -02:56:08.694 --> 02:56:10.529 -That's the one! Parley! - -02:56:11.281 --> 02:56:12.282 -Parley! - -02:56:12.325 --> 02:56:13.617 -Parley?! - -02:56:14.868 --> 02:56:18.663 -Damn to the depths whatever -muttonhead thought up parley! - -02:56:20.290 --> 02:56:22.583 -That would be the French. - -02:56:34.388 --> 02:56:35.597 -Not more pirates! - -02:56:35.640 --> 02:56:37.681 -Welcome aboard, Miss Elizabeth. - -02:56:38.643 --> 02:56:39.849 -Mr. Gibbs? - -02:56:40.560 --> 02:56:41.852 -Hey, boy, where be Jack? - -02:56:42.979 --> 02:56:45.482 -Jack? Jack Sparrow? - -02:56:46.732 --> 02:56:48.234 -He fell behind. - -02:56:55.783 --> 02:56:57.327 -Keep to the code! - -02:56:58.578 --> 02:57:01.371 -- Weigh anchor! -- Hoist the sails! - -02:57:01.455 --> 02:57:03.124 -Split-quick, you dibbies! - -02:57:09.338 --> 02:57:12.383 -How the blazes -did you get off that island? - -02:57:13.760 --> 02:57:17.220 -When you marooned me on -that godforsaken spit of land, - -02:57:17.304 --> 02:57:19.683 -you forgot one -very important thing, mate. - -02:57:21.267 --> 02:57:23.685 -I'm Captain Jack Sparrow. - -02:57:23.727 --> 02:57:27.356 -Ah, well, I won't be -making that mistake... - -02:57:27.399 --> 02:57:28.608 -...again. - -02:57:29.401 --> 02:57:32.861 -Gents, you all remember -Captain Jack Sparrow? - -02:57:32.945 --> 02:57:34.154 -Aye. - -02:57:34.907 --> 02:57:35.907 -Kill him. - -02:57:37.075 --> 02:57:39.742 -The girl's blood didn't work, did it? - -02:57:42.414 --> 02:57:43.580 -Hold your fire! - -02:57:50.212 --> 02:57:52.756 -You know whose blood we need? - -02:57:54.468 --> 02:57:56.342 -I know whose blood you need. - -02:58:03.477 --> 02:58:06.059 -What sort of a man -trades a man's life for a ship? - -02:58:06.144 --> 02:58:07.396 -A pirate. - -02:58:08.563 --> 02:58:09.900 -Here. - -02:58:09.984 --> 02:58:11.692 -Let me. - -02:58:11.735 --> 02:58:13.236 -Thank you. - -02:58:14.613 --> 02:58:17.197 -You said you gave Barbossa -my name as yours. - -02:58:19.075 --> 02:58:20.075 -Why? - -02:58:23.412 --> 02:58:24.703 -I don't know. - -02:58:26.666 --> 02:58:28.876 -I'm sorry. A blacksmith's hands. - -02:58:28.919 --> 02:58:33.506 -- I know they're rough. -- No... I mean, yes, they are, but... - -02:58:35.966 --> 02:58:37.759 -But don't stop. - -02:58:46.268 --> 02:58:47.685 -Elizabeth! - -02:59:03.620 --> 02:59:04.954 -It's yours. - -02:59:09.375 --> 02:59:12.795 -I thought I'd lost it -the day they rescued me. - -02:59:12.837 --> 02:59:14.295 -It was a gift from my father. - -02:59:14.338 --> 02:59:16.465 -He sent it to me. - -02:59:22.138 --> 02:59:23.680 -Why did you take it? - -02:59:25.808 --> 02:59:28.560 -Because I was afraid -that you were a pirate. - -02:59:30.145 --> 02:59:31.938 -That would've been awful. - -02:59:35.401 --> 02:59:37.193 -It wasn't your blood they needed. - -02:59:39.989 --> 02:59:42.241 -It was my father's blood. - -02:59:44.702 --> 02:59:47.287 -My blood. - -02:59:52.210 --> 02:59:53.585 -The blood of a pirate. - -02:59:53.669 --> 02:59:55.795 -Will, I'm so sorry. -Please forgive me. - -03:00:09.144 --> 03:00:12.770 -So you expect to leave me standin' on -some beach, with nothing but a name - -03:00:12.855 --> 03:00:18.192 -and your word it's the one I need, -and watch you sail away in my ship? - -03:00:18.277 --> 03:00:19.444 -No. - -03:00:19.528 --> 03:00:23.656 -I expect to leave you standing on some -beach with absolutely no name at all, - -03:00:23.699 --> 03:00:25.784 -watching me sail away on my ship, - -03:00:25.869 --> 03:00:28.745 -and then I'll shout -the name back to you. - -03:00:28.829 --> 03:00:30.163 -Savvy? - -03:00:30.205 --> 03:00:33.249 -That still leaves the problem -of me standing on some beach, - -03:00:33.334 --> 03:00:37.170 -with naught but a name and your word -it's the one I need. - -03:00:38.212 --> 03:00:39.547 -Of the two of us, - -03:00:39.632 --> 03:00:43.426 -I am the only one who -hasn't committed mutiny. - -03:00:43.510 --> 03:00:47.512 -Therefore, my word is -the one we'll be trusting. - -03:00:47.555 --> 03:00:49.308 -Although... - -03:00:49.392 --> 03:00:52.018 -I suppose I should be thanking you -because, in fact, - -03:00:52.061 --> 03:00:54.353 -if you hadn't betrayed me -and left me to die, - -03:00:55.396 --> 03:00:59.693 -I would have an equal share -in that curse, same as you. - -03:00:59.736 --> 03:01:01.110 -Funny ol' world, isn't it? - -03:01:01.194 --> 03:01:02.527 -Hm. - -03:01:05.115 --> 03:01:07.616 -Captain! We're coming up -on the Interceptor. - -03:01:20.756 --> 03:01:22.798 -I'm having a thought here, Barbossa. - -03:01:23.466 --> 03:01:25.258 -What say we run up a flag of truce, - -03:01:25.343 --> 03:01:27.136 -I scurry over to the Interceptor, - -03:01:27.220 --> 03:01:30.682 -and I negotiate the return of your -medallion. What say you to that? - -03:01:31.642 --> 03:01:35.144 -You see, Jack, that's exactly -the attitude that lost you the Pearl. - -03:01:35.229 --> 03:01:38.147 -People are easier to search -when they're dead. - -03:01:39.190 --> 03:01:40.525 -Lock him in the brig. - -03:01:52.787 --> 03:01:55.246 -Hands aloft to loose ta'gallants! - -03:01:55.288 --> 03:01:58.583 -With this wind dead astern, -she'll carry every sail we've got. - -03:01:58.626 --> 03:02:01.086 -- What's happening? -- The Black Pearl! - -03:02:01.129 --> 03:02:02.336 -She's gaining on us! - -03:02:06.927 --> 03:02:09.303 -This is the fastest ship -in the Caribbean! - -03:02:09.388 --> 03:02:12.140 -You can tell them that -after they've caught us! - -03:02:12.182 --> 03:02:14.099 -We're shallower on the draft, right? - -03:02:14.142 --> 03:02:15.143 -Aye. - -03:02:15.227 --> 03:02:17.309 -Can't we lose them amongst those shoals? - -03:02:18.772 --> 03:02:20.480 -We don't have to outrun 'em long. - -03:02:20.523 --> 03:02:21.817 -Just long enough. - -03:02:21.860 --> 03:02:23.150 -Lighten the ship! - -03:02:23.234 --> 03:02:24.401 -Stem to stern! - -03:02:24.485 --> 03:02:27.572 -Anything we can afford to lose, -see that it's lost! - -03:02:36.998 --> 03:02:39.000 -Apparently, there's a leak. - -03:02:53.681 --> 03:02:56.851 -Haul on the main brace! -Make ready the guns! - -03:02:56.894 --> 03:02:59.102 -And run out the sweeps. - -03:03:27.339 --> 03:03:29.007 -We're gonna need that. - -03:03:37.684 --> 03:03:40.477 -It was a good plan, up till now. - -03:03:40.562 --> 03:03:42.020 -Gibbs! - -03:03:42.063 --> 03:03:43.480 -We have to make a stand. - -03:03:43.564 --> 03:03:44.982 -We must fight! - -03:03:45.900 --> 03:03:48.026 -- Load the guns! -- With what? - -03:03:48.070 --> 03:03:49.820 -Anything! Everything! - -03:03:49.904 --> 03:03:51.613 -Anything we have left! - -03:03:53.659 --> 03:03:55.617 -Load the guns! - -03:03:55.701 --> 03:03:57.410 -Case shot and langrage! - -03:03:57.495 --> 03:03:59.079 -Nails and crushed glass! - -03:04:01.623 --> 03:04:02.792 -With a will! - -03:04:24.104 --> 03:04:26.940 -The Pearl's gonna luff up -on our port quarter! - -03:04:27.024 --> 03:04:29.609 -She'll rake us without ever -presenting a target! - -03:04:29.651 --> 03:04:31.736 -Lower the anchor on the right side. - -03:04:32.320 --> 03:04:33.738 -On the starboard side! - -03:04:34.783 --> 03:04:37.910 -- It has the element of surprise. -- You're daft, lady! - -03:04:37.953 --> 03:04:38.952 -You both are! - -03:04:39.035 --> 03:04:40.453 -Daft like Jack! - -03:04:41.164 --> 03:04:42.664 -Lower the starboard anchor! - -03:04:43.292 --> 03:04:46.834 -Do it, you gobs, or it's you -we'll load into the cannons! - -03:04:46.918 --> 03:04:48.461 -Aye! - -03:05:05.313 --> 03:05:06.563 -Let go! - -03:05:13.155 --> 03:05:14.821 -They're club haulin'! - -03:05:14.906 --> 03:05:17.656 -Hard a port! -Rack the starboard oars! - -03:05:17.741 --> 03:05:19.492 -Hard a port! - -03:05:30.879 --> 03:05:32.130 -Keep her steady, man. - -03:05:39.179 --> 03:05:40.179 -Now! - -03:05:40.263 --> 03:05:42.557 -Fire! - -03:05:52.317 --> 03:05:54.318 -Stop blowing holes in my ship! - -03:06:40.907 --> 03:06:43.076 -We could use a few more ideas, lass! - -03:06:43.160 --> 03:06:44.743 -It's your turn! - -03:06:44.786 --> 03:06:46.578 -We need us a devil's dowry! - -03:06:46.621 --> 03:06:47.954 -We'll give them her! - -03:06:48.958 --> 03:06:50.457 -She's not what they're after. - -03:06:53.044 --> 03:06:54.378 -The medallion! - -03:07:16.483 --> 03:07:19.069 -Strike your colors, -you bloomin' cockroaches! - -03:07:19.112 --> 03:07:21.864 -Hands, grapnels, at the ready! - -03:07:21.948 --> 03:07:23.783 -Prepare to board! - -03:07:31.416 --> 03:07:32.622 -Ahh! - -03:07:58.109 --> 03:08:00.943 -Pistols and cutlasses, men! - -03:08:00.986 --> 03:08:03.280 -Koehler and Twigg -to the powder magazine! - -03:08:03.323 --> 03:08:06.658 -And the rest of you, -bring me the medallion! - -03:08:16.211 --> 03:08:18.630 -Hey! Hey! - -03:08:34.438 --> 03:08:37.065 -Hey! Below! - -03:08:56.876 --> 03:08:58.377 -Thanks very much. - -03:09:01.713 --> 03:09:03.299 -Ha-haa! - -03:09:07.679 --> 03:09:10.304 -Whoa! - -03:09:11.767 --> 03:09:12.766 -Jack! - -03:09:14.144 --> 03:09:15.935 -Bloody empty! - -03:09:31.868 --> 03:09:33.746 -That's not very nice. - -03:09:38.376 --> 03:09:39.584 -Where is the medallion? - -03:09:39.626 --> 03:09:40.712 -Wretch! - -03:09:42.463 --> 03:09:43.672 -Ah... - -03:09:43.756 --> 03:09:45.089 -Where is dear William? - -03:09:47.301 --> 03:09:48.551 -Will! - -03:09:50.762 --> 03:09:52.972 -- Will! -- Elizabeth! - -03:09:55.936 --> 03:09:57.060 -Monkey! - -03:10:03.735 --> 03:10:05.569 -I can't move it! - -03:10:06.945 --> 03:10:07.945 -Will! - -03:10:07.988 --> 03:10:09.114 -Elizabeth! - -03:10:09.156 --> 03:10:10.239 -Will! - -03:10:21.336 --> 03:10:23.461 -Why, thank you, Jack. - -03:10:23.545 --> 03:10:25.171 -You're welcome. - -03:10:25.255 --> 03:10:27.842 -Not you. We named the monkey Jack. - -03:10:29.051 --> 03:10:31.969 -Gents! Our hope is restored! - -03:10:32.054 --> 03:10:33.472 -Yeah! - -03:11:08.006 --> 03:11:12.009 -Any of you so much -as thinks the word parley, - -03:11:12.094 --> 03:11:14.845 -I'll have your guts for garters! - -03:11:22.729 --> 03:11:24.146 -Will! - -03:11:24.189 --> 03:11:26.190 -Stop it! Stop it! - -03:11:27.067 --> 03:11:29.025 -Welcome back, miss. - -03:11:29.110 --> 03:11:31.861 -You took advantage of -our hospitality last time. - -03:11:31.904 --> 03:11:35.242 -It holds fair now -that you return the favor! - -03:11:35.660 --> 03:11:38.536 -No! No! - -03:11:41.206 --> 03:11:42.291 -Barbossa! - -03:11:44.251 --> 03:11:45.252 -Will. - -03:11:48.046 --> 03:11:49.046 -She goes free! - -03:11:50.172 --> 03:11:51.883 -What's in your head, boy? - -03:11:53.260 --> 03:11:54.552 -She goes free. - -03:11:55.220 --> 03:11:58.265 -You've only got one shot, -and we can't die. - -03:11:58.349 --> 03:12:00.349 -Don't do anything stupid! - -03:12:03.313 --> 03:12:04.562 -You can't. - -03:12:04.646 --> 03:12:06.062 -I can. - -03:12:07.775 --> 03:12:09.399 -Like that. - -03:12:10.446 --> 03:12:11.736 -Who are you? - -03:12:11.778 --> 03:12:13.280 -No one! He's no one! - -03:12:14.031 --> 03:12:17.033 -A distant cousin of my aunt's -nephew, twice removed. - -03:12:17.075 --> 03:12:19.577 -- Lovely singing voice, though. -- Eunuch! - -03:12:19.619 --> 03:12:21.286 -My name is Will Turner! - -03:12:21.370 --> 03:12:24.081 -My father was Bootstrap Bill Turner. - -03:12:24.124 --> 03:12:26.084 -His blood runs in my veins. - -03:12:26.794 --> 03:12:29.086 -It's the spitting image -of ol' Bootstrap Bill, - -03:12:29.171 --> 03:12:30.962 -come back to haunt us! - -03:12:31.047 --> 03:12:33.050 -On my word, do as I say, - -03:12:33.092 --> 03:12:34.967 -or I'll pull this trigger, - -03:12:35.052 --> 03:12:37.260 -and be lost to Davy Jones' locker! - -03:12:38.304 --> 03:12:40.598 -Name your terms, Mr. Turner. - -03:12:40.640 --> 03:12:41.807 -Elizabeth goes free! - -03:12:41.893 --> 03:12:43.517 -Yes, we know that one. - -03:12:43.602 --> 03:12:44.602 -Anything else? - -03:12:47.271 --> 03:12:48.565 -And the crew! - -03:12:48.608 --> 03:12:50.566 -The crew are not to be harmed! - -03:12:55.323 --> 03:12:57.113 -Agreed. - -03:13:03.329 --> 03:13:06.791 -Go on, poppet. Walk the plank. - -03:13:16.301 --> 03:13:17.969 -Barbossa, you lying bastard! - -03:13:18.053 --> 03:13:20.638 -You swore she'd go free! - -03:13:20.722 --> 03:13:22.974 -Don't dare impugn me honor, boy! - -03:13:23.058 --> 03:13:24.724 -I agreed she'd go free. - -03:13:24.809 --> 03:13:27.812 -It was you who failed to specify -when or where. - -03:13:33.527 --> 03:13:37.488 -Though it does seem a shame to lose -something so fine, don't it, lads? - -03:13:37.531 --> 03:13:38.531 -Aye. - -03:13:39.533 --> 03:13:42.701 -So I'll be havin' that dress -back before you go. - -03:13:47.039 --> 03:13:49.167 -I always liked you. - -03:13:52.170 --> 03:13:54.505 -Goes with your black heart! - -03:13:55.090 --> 03:13:57.257 -Mm. It's still warm. - -03:14:00.636 --> 03:14:02.680 -Off you go! - -03:14:02.763 --> 03:14:04.098 -Come on! - -03:14:07.727 --> 03:14:08.893 -Too long! - -03:14:20.031 --> 03:14:22.532 -I really rather hoped -we were past all this. - -03:14:24.119 --> 03:14:25.535 -Jack. - -03:14:25.578 --> 03:14:26.663 -Jack! - -03:14:28.414 --> 03:14:29.874 -Did ya not notice? - -03:14:29.958 --> 03:14:34.210 -That be the same island we made you -governor of on our last little trip. - -03:14:35.504 --> 03:14:37.172 -I did notice. - -03:14:37.214 --> 03:14:41.384 -Perhaps you'll be able to conjure up -another miraculous escape, - -03:14:41.427 --> 03:14:43.053 -but I doubt it. - -03:14:45.890 --> 03:14:47.432 -Off you go. - -03:14:48.434 --> 03:14:51.060 -Last time you left me -a pistol with one shot. - -03:14:51.145 --> 03:14:52.729 -By the powers, you're right! - -03:14:52.812 --> 03:14:54.941 -Where be Jack's pistol? - -03:14:55.025 --> 03:14:56.192 -Bring it forward. - -03:14:59.362 --> 03:15:02.156 -Seeing as there's two of us, -a gentleman... - -03:15:02.865 --> 03:15:04.658 -...would give us a pair of pistols. - -03:15:04.743 --> 03:15:06.451 -It'll be one pistol, as before, - -03:15:06.535 --> 03:15:09.328 -and you can be the gentleman -and shoot the lady, - -03:15:09.412 --> 03:15:11.248 -and starve to death yourself! - -03:15:35.606 --> 03:15:39.150 -That's the second time I've had to watch -that man sail away with my ship. - -03:15:41.613 --> 03:15:44.280 -You were marooned on this island -before, weren't you? - -03:15:44.364 --> 03:15:45.950 -We can escape the same way! - -03:15:45.992 --> 03:15:48.118 -To what point and purpose, young missy? - -03:15:48.870 --> 03:15:50.620 -The Black Pearl is gone, - -03:15:50.663 --> 03:15:54.123 -and unless you have a rudder and -a lot of sails hidden in that bodice... - -03:15:54.208 --> 03:15:56.626 -Unlikely... - -03:15:56.669 --> 03:15:59.628 -Young Mr. Turner will be dead -long before you can reach him. - -03:16:02.299 --> 03:16:04.634 -But you're Captain Jack Sparrow! - -03:16:04.677 --> 03:16:09.097 -You vanished from under the eyes of -seven agents of the East India Company! - -03:16:09.139 --> 03:16:11.892 -You sacked Nassau Port -without even firing a shot! - -03:16:11.977 --> 03:16:14.227 -Are you the pirate -I've read about or not? - -03:16:16.772 --> 03:16:18.273 -How did you escape last time? - -03:16:25.114 --> 03:16:26.989 -Last time... - -03:16:27.031 --> 03:16:29.825 -...I was here a grand total -of three days, all right? - -03:16:30.828 --> 03:16:31.828 -Last time... - -03:16:33.872 --> 03:16:37.166 -...the rum runners used this island -as a cache. - -03:16:37.209 --> 03:16:39.668 -They came by and I was able -to barter passage off. - -03:16:39.752 --> 03:16:41.505 -From the looks of things, - -03:16:41.590 --> 03:16:43.798 -they've long been out of business. - -03:16:43.841 --> 03:16:48.970 -You probably have your bloody friend -Norrington to thank for that. - -03:16:49.013 --> 03:16:50.554 -So that's it then? - -03:16:51.848 --> 03:16:55.685 -That's the secret, grand adventure -of the infamous Jack Sparrow! - -03:16:56.688 --> 03:16:58.479 -You spent three days, - -03:16:58.522 --> 03:17:00.857 -lying on a beach, drinking rum. - -03:17:03.236 --> 03:17:07.029 -Welcome to the Caribbean, love. - -03:17:15.080 --> 03:17:17.247 -♪ We're devils -We're black sheep - -03:17:17.332 --> 03:17:18.499 -♪ We're really bad eggs - -03:17:18.542 --> 03:17:21.168 -♪ Drink up, me hearties -Yo ho - -03:17:21.211 --> 03:17:25.172 -♪ Yo ho, yo ho -A pirate's life for me - -03:17:25.214 --> 03:17:27.050 -I love this song! - -03:17:30.053 --> 03:17:32.220 -Really bad eggs! - -03:17:33.641 --> 03:17:35.642 -Ooh... - -03:17:37.100 --> 03:17:39.102 -When I get the Pearl back, - -03:17:39.186 --> 03:17:41.688 -I'm gonna teach it to the whole crew, - -03:17:41.731 --> 03:17:43.274 -and we'll sing it all the time! - -03:17:43.359 --> 03:17:47.152 -And you will be positively the most -fearsome pirates in the Spanish Main! - -03:17:47.236 --> 03:17:49.071 -Not just the Spanish Main, love. - -03:17:50.115 --> 03:17:51.823 -The entire ocean! - -03:17:51.908 --> 03:17:53.660 -The entire world! - -03:17:54.577 --> 03:17:56.578 -Wherever we want to go, we go. - -03:17:56.621 --> 03:17:58.205 -That's what a ship is, you know. - -03:17:58.247 --> 03:18:01.084 -It's not just a keel and a hull -and a deck and sails. - -03:18:01.168 --> 03:18:02.669 -That's what a ship needs. - -03:18:02.753 --> 03:18:04.754 -But what a ship is... - -03:18:06.131 --> 03:18:09.091 -What the Black Pearl really is... - -03:18:10.552 --> 03:18:13.804 -...is freedom. - -03:18:14.805 --> 03:18:15.890 -Jack... - -03:18:15.933 --> 03:18:20.687 -It must be really terrible for you -to be trapped on this island. - -03:18:21.478 --> 03:18:22.689 -Oh, yes. - -03:18:22.773 --> 03:18:25.609 -But the company is... - -03:18:25.652 --> 03:18:28.444 -...infinitely better than last time, -and the... - -03:18:30.238 --> 03:18:33.949 -...scenery has definitely improved. -- Mr. Sparrow! - -03:18:33.991 --> 03:18:38.037 -I'm not entirely sure I've had -enough rum to allow that kind of talk. - -03:18:39.664 --> 03:18:41.457 -I know exactly what you mean, love. - -03:18:48.965 --> 03:18:50.509 -To freedom! - -03:18:53.261 --> 03:18:54.803 -To the Black Pearl. - -03:19:11.404 --> 03:19:14.448 -Hm? - -03:19:24.333 --> 03:19:25.419 -No! - -03:19:25.503 --> 03:19:28.296 -Not good! Stop! - -03:19:28.337 --> 03:19:29.546 -Not good! - -03:19:29.630 --> 03:19:30.630 -What are you doing? - -03:19:30.673 --> 03:19:32.759 -You've burned all the food, the shade... - -03:19:32.843 --> 03:19:35.094 -...the rum! -- Yes, the rum is gone. - -03:19:35.179 --> 03:19:36.427 -Why is the rum gone? - -03:19:36.887 --> 03:19:38.763 -One, because it is a vile drink - -03:19:38.847 --> 03:19:41.768 -that turns even the most respectable -men into scoundrels. - -03:19:41.852 --> 03:19:44.937 -Two, that signal -is over 1,000 feet high. - -03:19:45.022 --> 03:19:47.230 -The entire Royal Navy -is out looking for me. - -03:19:47.315 --> 03:19:49.691 -Do you think there is even -the slightest chance - -03:19:49.734 --> 03:19:50.901 -they won't see it? - -03:19:50.985 --> 03:19:52.818 -But why is the rum gone? - -03:19:53.905 --> 03:19:55.363 -Just wait, Captain Sparrow. - -03:19:55.406 --> 03:19:57.201 -You give it one hour, maybe two, - -03:19:57.285 --> 03:20:02.203 -keep a weather eye open, and you -will see white sails on that horizon. - -03:20:07.710 --> 03:20:10.712 -"Must've been terrible for you -to be trapped here, Jack." - -03:20:10.755 --> 03:20:13.840 -"Must've been terrible for you..." -Well, it bloody is now! - -03:20:21.223 --> 03:20:23.474 -There'll be no -living with her after this. - -03:20:24.476 --> 03:20:28.062 -- We've got to save Will! -- No! You're safe now. - -03:20:28.146 --> 03:20:30.232 -We will return to -Port Royal immediately, - -03:20:30.316 --> 03:20:32.276 -not go gallivanting after pirates! - -03:20:32.361 --> 03:20:34.278 -Then we condemn him to death! - -03:20:35.364 --> 03:20:38.072 -The boy's fate is regrettable... - -03:20:38.156 --> 03:20:40.742 -...but then, so was his decision -to engage in piracy. - -03:20:40.827 --> 03:20:44.079 -To rescue me! To prevent anything -from happening to me! - -03:20:44.163 --> 03:20:48.000 -If I may be so bold as to interject -my professional opinion, - -03:20:48.085 --> 03:20:51.253 -the Pearl was listing -near to scuppers after the battle. - -03:20:51.295 --> 03:20:54.213 -It's very unlikely she'd be able -to make good time. - -03:20:54.256 --> 03:20:55.590 -Think about it. - -03:20:55.675 --> 03:20:57.884 -The Black Pearl. - -03:20:57.927 --> 03:21:02.430 -The last real pirate threat -in the Caribbean, mate. - -03:21:02.473 --> 03:21:04.433 -How can you pass that up? - -03:21:06.602 --> 03:21:09.437 -By remembering that I serve others, -Mr. Sparrow, - -03:21:09.480 --> 03:21:11.982 -- not only myself. -- Commodore, I beg you! - -03:21:12.067 --> 03:21:13.065 -Please do this! - -03:21:13.108 --> 03:21:14.733 -For me! - -03:21:14.776 --> 03:21:16.945 -As a wedding gift. - -03:21:17.028 --> 03:21:18.195 -Elizabeth? - -03:21:19.282 --> 03:21:21.825 -Are you accepting -the commodore's proposal? - -03:21:24.244 --> 03:21:25.287 -I am. - -03:21:26.122 --> 03:21:27.789 -A wedding! I love weddings! - -03:21:27.874 --> 03:21:29.624 -Drinks all around! - -03:21:31.918 --> 03:21:34.671 -I know. "Clap him in irons," right? - -03:21:37.217 --> 03:21:38.382 -Mr. Sparrow... - -03:21:39.719 --> 03:21:42.053 -...you will accompany -these fine men to the helm - -03:21:42.139 --> 03:21:44.639 -and provide us with a bearing -to Isla de Muerta. - -03:21:44.682 --> 03:21:48.602 -You'll then spend the rest of the voyage -contemplating all possible meanings - -03:21:48.644 --> 03:21:51.145 -of the phrase "silent as the grave." - -03:21:51.187 --> 03:21:52.770 -Do I make myself clear? - -03:21:52.813 --> 03:21:54.901 -Inescapably clear. - -03:21:58.905 --> 03:22:01.156 -Shiver me timbers! - -03:22:01.948 --> 03:22:03.575 -Cotton says you missed a bit. - -03:22:08.579 --> 03:22:09.955 -You knew William Turner? - -03:22:11.834 --> 03:22:13.919 -Old Bootstrap Bill. - -03:22:14.003 --> 03:22:15.003 -We knew him. - -03:22:16.004 --> 03:22:20.007 -Never sat well with Bootstrap, -what we did to Jack Sparrow, - -03:22:20.050 --> 03:22:22.135 -the mutiny and all. - -03:22:22.718 --> 03:22:24.721 -He said it wasn't right with the code. - -03:22:25.805 --> 03:22:28.975 -That's why he sent off a piece -of the treasure to you, as it were. - -03:22:29.018 --> 03:22:32.645 -He said we deserved to be cursed... - -03:22:34.232 --> 03:22:36.316 -...and remain cursed. - -03:22:36.359 --> 03:22:37.399 -Stupid blighter! - -03:22:37.484 --> 03:22:39.317 -Good man. - -03:22:39.361 --> 03:22:44.616 -But, as you can imagine, that -didn't sit too well with the captain. - -03:22:44.699 --> 03:22:47.953 -That didn't sit too well -with the captain at all! - -03:22:48.037 --> 03:22:51.664 -- Tell him what Barbossa did. -- I'm telling the story! - -03:22:54.209 --> 03:22:58.294 -So... what the captain did... - -03:22:58.379 --> 03:23:00.965 -...he strapped a cannon -to Bootstrap's bootstraps. - -03:23:01.049 --> 03:23:02.550 -Bootstrap's bootstraps. - -03:23:02.593 --> 03:23:05.595 -Last we saw of ol' Bill Turner... - -03:23:05.680 --> 03:23:08.138 -...he was sinking to -the crushin' black oblivion - -03:23:08.223 --> 03:23:11.351 -of Davy Jones' locker! - -03:23:11.770 --> 03:23:14.853 -'Course it was only after that -we learned we needed his blood - -03:23:14.896 --> 03:23:16.105 -to lift the curse. - -03:23:16.189 --> 03:23:19.234 -That's what you'd call ironic. - -03:23:23.405 --> 03:23:25.031 -Bring him! - -03:23:32.246 --> 03:23:34.249 -I don't care for the situation. - -03:23:34.792 --> 03:23:37.876 -Any attempt to storm the caves -could turn into an ambush. - -03:23:37.919 --> 03:23:41.256 -Not if you're the one -doing the ambushing. - -03:23:41.340 --> 03:23:45.008 -I go in and convince Barbossa to send -his men out in their little boats. - -03:23:45.092 --> 03:23:47.928 -You and your men -return to the Dauntless - -03:23:47.971 --> 03:23:51.224 -and blast the bejesus out of them -with your little cannons. - -03:23:51.267 --> 03:23:52.516 -What do you have to lose? - -03:23:53.602 --> 03:23:56.105 -Nothing I'd lament being rid of. - -03:23:57.772 --> 03:23:59.648 -Now, to be quite honest with you, - -03:23:59.733 --> 03:24:02.694 -there's still a slight risk -to those aboard the Dauntless, - -03:24:02.778 --> 03:24:06.572 -which includes -the future Mrs. Commodore. - -03:24:06.614 --> 03:24:09.700 -- It's for your safety! -- Don't care what the Commodore ordered! - -03:24:09.785 --> 03:24:10.784 -I have to tell him! - -03:24:10.827 --> 03:24:13.829 -The pirates! They're cursed! -They can't be killed! - -03:24:13.913 --> 03:24:16.457 -Don't worry, miss. -He's already informed of that. - -03:24:16.499 --> 03:24:20.209 -A little mermaid flopped up on deck -and told him the whole story! - -03:24:20.294 --> 03:24:22.378 -This is Jack Sparrow's doing! - -03:24:33.851 --> 03:24:35.309 -No reason to fret. - -03:24:35.393 --> 03:24:37.978 -Just a prick of the finger, -a few drops of blood... - -03:24:38.021 --> 03:24:40.022 -No mistakes this time. - -03:24:40.106 --> 03:24:41.815 -He's only half Turner. - -03:24:41.900 --> 03:24:43.317 -We spill it all! - -03:24:45.736 --> 03:24:48.655 -Guess there is reason to fret. - -03:25:01.502 --> 03:25:03.379 -Beg your pardon, mate. -Beg your pardon. - -03:25:03.464 --> 03:25:05.506 -- Begun by blood... -- Excuse me. - -03:25:05.590 --> 03:25:08.300 -By blood un... - -03:25:10.678 --> 03:25:11.677 -Jack! - -03:25:12.722 --> 03:25:13.804 -It's not possible! - -03:25:13.846 --> 03:25:16.016 -Not probable. - -03:25:16.059 --> 03:25:17.852 -Where's Elizabeth? - -03:25:19.229 --> 03:25:21.479 -She's safe, just like I promised. - -03:25:21.522 --> 03:25:24.482 -She's all set to marry Norrington, -just like she promised, - -03:25:24.525 --> 03:25:26.901 -and you get to die for her, -just like you promised. - -03:25:26.985 --> 03:25:29.112 -So we're all men of our word, really. - -03:25:29.196 --> 03:25:32.491 -Except for Elizabeth, -who is, in fact, a woman. - -03:25:32.534 --> 03:25:33.951 -Shut up! You're next! - -03:25:37.497 --> 03:25:40.374 -You don't want to be doing that, mate. - -03:25:40.416 --> 03:25:42.375 -No, I really think I do. - -03:25:44.169 --> 03:25:46.046 -Your funeral. - -03:25:49.217 --> 03:25:51.217 -And why don't I want to be doing it? - -03:25:51.260 --> 03:25:52.928 -Oh, because... - -03:25:53.929 --> 03:25:56.264 -Because the HMS Dauntless, - -03:25:56.348 --> 03:25:58.766 -the pride of the Royal Navy, - -03:25:58.851 --> 03:26:02.103 -is floating just off shore, - -03:26:02.187 --> 03:26:04.021 -waiting for you. - -03:26:12.073 --> 03:26:13.240 -What we doing here? - -03:26:15.159 --> 03:26:18.578 -The pirates come out, -unprepared and unawares. - -03:26:18.620 --> 03:26:20.706 -We catch 'em in a crossfire, - -03:26:20.748 --> 03:26:23.583 -and send 'em down to see Old Hob. - -03:26:24.878 --> 03:26:27.254 -I know why we're here. I meant... - -03:26:27.338 --> 03:26:29.213 -...why aren't we doing what it was... - -03:26:29.256 --> 03:26:31.089 -What Mr. Sparrow said we should do? - -03:26:31.132 --> 03:26:32.634 -With the cannons and all? - -03:26:32.719 --> 03:26:35.761 -Because it was Mr. Sparrow who said it. - -03:26:38.389 --> 03:26:40.975 -You think he wasn't telling the truth? - -03:26:41.059 --> 03:26:42.936 -Just hear me out, mate. - -03:26:43.021 --> 03:26:46.772 -You order your men to row out to the -Dauntless, they do what they do best... - -03:26:47.859 --> 03:26:52.278 -Robert's your uncle, Fanny's your aunt. -There you are with two ships. - -03:26:52.362 --> 03:26:54.780 -The makings of your very own fleet. - -03:26:54.865 --> 03:26:58.452 -'Course, you'll take the grandest -as your flagship, and who's to argue? - -03:26:58.536 --> 03:26:59.952 -But what of the Pearl? - -03:27:01.579 --> 03:27:02.915 -Name me captain. - -03:27:02.957 --> 03:27:06.416 -I'll sail under your colors, -I'll give you ten percent of me plunder, - -03:27:06.459 --> 03:27:08.668 -and you'll get to -introduce yourself as... - -03:27:09.253 --> 03:27:12.131 -...Commodore Barbossa. - -03:27:12.174 --> 03:27:13.257 -Savvy? - -03:27:13.300 --> 03:27:15.509 -I suppose, in exchange, you'll be - -03:27:15.593 --> 03:27:18.429 -- wanting me not to kill the whelp. -- No. Not at all! - -03:27:18.472 --> 03:27:20.139 -By all means, kill the whelp! - -03:27:20.182 --> 03:27:22.600 -Just not yet. - -03:27:22.643 --> 03:27:24.811 -Wait to lift the curse - -03:27:24.853 --> 03:27:27.521 -until the opportune moment. - -03:27:30.984 --> 03:27:32.611 -For instance... - -03:27:34.488 --> 03:27:37.740 -...after you've killed Norrington's men. - -03:27:37.824 --> 03:27:39.408 -Every... - -03:27:39.493 --> 03:27:41.160 -...last... - -03:27:41.203 --> 03:27:42.663 -...one. - -03:27:52.298 --> 03:27:54.632 -You've been planning this -from the beginning! - -03:27:54.676 --> 03:27:56.259 -Ever since you learned my name! - -03:27:57.094 --> 03:27:58.093 -Yeah. - -03:28:00.428 --> 03:28:02.556 -I want 50 percent of your plunder. - -03:28:02.642 --> 03:28:03.641 -- 15! -- 40! - -03:28:03.684 --> 03:28:04.685 -25! - -03:28:05.852 --> 03:28:07.186 -And I'll buy you the hat. - -03:28:07.229 --> 03:28:09.230 -A really big one. - -03:28:10.023 --> 03:28:11.191 -Commodore. - -03:28:14.319 --> 03:28:15.527 -We have an accord. - -03:28:17.198 --> 03:28:19.490 -All hands to the boats! - -03:28:20.493 --> 03:28:21.617 -Apologies. - -03:28:21.702 --> 03:28:23.369 -You give the orders. - -03:28:24.706 --> 03:28:25.705 -Gents... - -03:28:26.708 --> 03:28:28.081 -...take a walk! - -03:28:32.920 --> 03:28:34.255 -Not to the boats? - -03:29:33.649 --> 03:29:36.567 -Hold fire! - -03:29:38.610 --> 03:29:41.404 -This is just like what -the Greeks done at Troy! - -03:29:42.783 --> 03:29:44.408 -'Cept they was in a horse, - -03:29:44.451 --> 03:29:45.910 -instead of dresses. - -03:29:46.620 --> 03:29:47.994 -Wooden horse. - -03:30:00.966 --> 03:30:01.967 -A moment, please. - -03:30:06.139 --> 03:30:07.137 -Elizabeth? - -03:30:10.393 --> 03:30:12.185 -I just want you to know, I... - -03:30:13.312 --> 03:30:15.772 -I believe you made a very -good decision today. - -03:30:16.606 --> 03:30:18.609 -Couldn't be more proud of you! - -03:30:19.111 --> 03:30:20.236 -But, you know, - -03:30:20.320 --> 03:30:23.238 -even a good decision, -if made for the wrong reasons, - -03:30:23.322 --> 03:30:24.824 -can be a wrong decision. - -03:30:33.835 --> 03:30:34.833 -Lieutenant. - -03:30:41.757 --> 03:30:44.175 -Yoo-hoo. - -03:30:54.019 --> 03:30:55.187 -Elizabeth? - -03:30:57.356 --> 03:30:58.606 -Are you there? - -03:31:00.859 --> 03:31:03.486 -Elizabeth, are you even listening to me? - -03:31:29.930 --> 03:31:32.683 -Oh, what have you done? - -03:31:32.726 --> 03:31:36.311 -- Yoo-hoo. -- Stop that! I already feel like a fool! - -03:31:37.354 --> 03:31:39.856 -Look nice, though. - -03:31:43.235 --> 03:31:45.653 -Do I look nice now?! - -03:32:21.607 --> 03:32:22.857 -I must admit, Jack. - -03:32:22.942 --> 03:32:24.859 -I thought I had you figured. - -03:32:24.944 --> 03:32:28.112 -But it turns out you're -a hard man to predict. - -03:32:28.197 --> 03:32:30.155 -Me, I'm dishonest. - -03:32:30.240 --> 03:32:33.077 -And a dishonest man you can -always trust to be dishonest. - -03:32:33.119 --> 03:32:34.369 -Honestly... - -03:32:34.453 --> 03:32:37.079 -...it's the honest ones -you want to watch out for. - -03:32:37.121 --> 03:32:39.414 -'Cause you can never predict - -03:32:39.457 --> 03:32:42.752 -when they're going to do -something incredibly... - -03:32:42.795 --> 03:32:43.794 -...stupid. - -03:33:01.437 --> 03:33:02.604 -Ha-ha! - -03:33:02.647 --> 03:33:03.689 -Ha-ha! - -03:33:03.773 --> 03:33:05.108 -Ha! - -03:33:16.954 --> 03:33:19.162 -You're off the edge of the map, mate. - -03:33:19.247 --> 03:33:21.290 -Here, there be monsters! - -03:33:29.174 --> 03:33:31.257 -What would you pick to eat first? - -03:33:31.341 --> 03:33:33.261 -I think we should decide now, - -03:33:33.345 --> 03:33:35.513 -just so we're ready when the time comes! - -03:34:00.582 --> 03:34:01.705 -What was that? - -03:34:06.209 --> 03:34:07.253 -Oh. - -03:34:19.933 --> 03:34:22.183 -Shh! - -03:34:24.646 --> 03:34:25.646 -It's Elizabeth! - -03:34:46.250 --> 03:34:47.919 -Make for the ship! Move! - -03:34:52.091 --> 03:34:53.506 -Ahh! - -03:34:57.345 --> 03:34:59.137 -To the ship! - -03:35:01.934 --> 03:35:05.061 -Marines, arms! - -03:35:41.514 --> 03:35:43.265 -You can't beat me, Jack. - -03:36:07.539 --> 03:36:09.082 -That's interesting! - -03:36:19.968 --> 03:36:21.844 -I couldn't resist, mate. - -03:36:43.910 --> 03:36:46.161 -Oh, no. - -03:37:28.245 --> 03:37:29.453 -Sorry! - -03:37:38.548 --> 03:37:40.215 -So, what now, Jack Sparrow? - -03:37:40.258 --> 03:37:42.926 -Are we to be two immortals, -locked in an epic battle - -03:37:43.010 --> 03:37:45.344 -until Judgment Day, -when the trumpets sound? - -03:37:45.428 --> 03:37:46.428 -Hm? - -03:37:46.471 --> 03:37:47.889 -Or you could surrender. - -03:37:56.649 --> 03:37:59.984 -Ahh! - -03:38:00.068 --> 03:38:01.903 -Ah-ha-ha-ha-ha. - -03:38:15.208 --> 03:38:16.417 -All of you with me! - -03:38:16.459 --> 03:38:18.544 -Will is in that cave, -and we must save him! - -03:38:18.628 --> 03:38:21.213 -Ready, and... heave! - -03:38:27.804 --> 03:38:29.805 -Please, I need your help! Come on! - -03:38:29.890 --> 03:38:32.641 -Any port in a storm. - -03:38:32.726 --> 03:38:34.811 -Cotton's right. We've got the Pearl! - -03:38:34.895 --> 03:38:37.146 -What about Jack? -Are you just gonna leave him? - -03:38:37.229 --> 03:38:39.023 -Jack owes us a ship! - -03:38:39.106 --> 03:38:40.650 -There's the code to consider. - -03:38:41.236 --> 03:38:42.359 -The code? - -03:38:44.113 --> 03:38:46.571 -You're pirates! -Hang the code - -03:38:46.655 --> 03:38:48.325 -and hang the rules! - -03:38:48.367 --> 03:38:50.785 -They're more like guidelines, anyway. - -03:38:54.581 --> 03:38:56.750 -Bloody pirates! - -03:39:06.344 --> 03:39:08.092 -- Oi! -- What? - -03:39:08.177 --> 03:39:10.346 -Is it supposed to be doing that? - -03:39:10.430 --> 03:39:12.640 -They're stealing our ship! - -03:39:13.100 --> 03:39:14.766 -Bloody pirates! - -03:39:16.854 --> 03:39:18.689 -Boarders away! - -03:39:26.904 --> 03:39:28.905 -Come on! - -03:39:54.099 --> 03:39:56.140 -No! Me eye! - -03:39:57.227 --> 03:39:58.935 -No! - -03:40:13.243 --> 03:40:14.784 -Ha! - -03:40:16.078 --> 03:40:18.162 -I'm gonna teach you the meaning of pain! - -03:40:18.247 --> 03:40:19.790 -You like pain? - -03:40:21.626 --> 03:40:23.002 -Try wearing a corset. - -03:40:33.387 --> 03:40:35.014 -Whose side is Jack on? - -03:40:35.098 --> 03:40:38.143 -At the moment? - -03:41:12.343 --> 03:41:14.218 -No fair! - -03:41:38.243 --> 03:41:40.078 -Ten years you carry that pistol, - -03:41:40.162 --> 03:41:42.497 -and now you waste your shot! - -03:41:43.499 --> 03:41:46.459 -He didn't waste it. - -03:42:11.110 --> 03:42:12.611 -I feel... - -03:42:17.200 --> 03:42:18.492 -...cold. - -03:42:48.605 --> 03:42:51.608 -Oh... Ugh! Oh! - -03:43:20.761 --> 03:43:23.221 -Parley? - -03:43:23.264 --> 03:43:25.142 -The ship is ours, gentlemen. - -03:43:25.226 --> 03:43:27.603 -Huzzah! Huzzah! - -03:43:36.403 --> 03:43:39.281 -Huzzah! - -03:44:13.481 --> 03:44:15.816 -We should return to the Dauntless. - -03:44:18.363 --> 03:44:21.989 -Your fiancé will be wanting -to know you're safe. - -03:44:31.668 --> 03:44:34.961 -If you were waiting for -the opportune moment... - -03:44:35.962 --> 03:44:37.296 -...that was it. - -03:44:38.756 --> 03:44:40.925 -Now if you'd be so kind, -I'd be much obliged - -03:44:41.009 --> 03:44:43.844 -if you'd drop me off at my ship. - -03:44:48.433 --> 03:44:50.601 -I'm sorry, Jack. - -03:44:52.521 --> 03:44:54.729 -They done what's right by them. - -03:44:54.814 --> 03:44:56.566 -Can't expect more than that. - -03:45:12.165 --> 03:45:13.498 -Jack Sparrow! - -03:45:13.541 --> 03:45:17.628 -- We have learned that you... -- Captain! Captain Jack Sparrow. - -03:45:18.338 --> 03:45:21.590 -...For your willful commission -of crimes against the crown. - -03:45:21.674 --> 03:45:25.386 -Said crimes being numerous in quantity, - -03:45:25.470 --> 03:45:27.012 -and sinister in nature. - -03:45:27.681 --> 03:45:29.180 -The most egregious of these - -03:45:29.223 --> 03:45:31.434 -to be cited herewith: - -03:45:31.519 --> 03:45:35.270 -- Piracy, smuggling... -- This is wrong. - -03:45:36.272 --> 03:45:39.274 -Commodore Norrington -is bound by the law, - -03:45:39.358 --> 03:45:41.901 -as are we all. - -03:45:41.944 --> 03:45:44.654 -...Impersonating an officer -of the Spanish Royal Navy, - -03:45:44.739 --> 03:45:47.825 -impersonating a cleric -of the Church of England... - -03:45:47.909 --> 03:45:49.033 -Oh, yes! - -03:45:49.075 --> 03:45:51.077 -Sailing under false colors, - -03:45:51.162 --> 03:45:55.373 -arson, kidnapping, looting, poaching, - -03:45:55.417 --> 03:46:01.379 -brigandage, pilfering, -depravity, depredation, - -03:46:01.422 --> 03:46:03.215 -and general lawlessness. - -03:46:04.632 --> 03:46:06.302 -And for these crimes, - -03:46:06.386 --> 03:46:08.928 -you have been sentenced to be, -on this day, - -03:46:08.972 --> 03:46:12.725 -hung by the neck, until dead. - -03:46:12.768 --> 03:46:15.061 -May God have mercy on your soul. - -03:46:15.103 --> 03:46:16.644 -Governor Swann. - -03:46:16.729 --> 03:46:18.648 -Commodore. - -03:46:20.149 --> 03:46:21.149 -Elizabeth. - -03:46:22.610 --> 03:46:25.446 -I should've told you every day, -from the moment I met you. - -03:46:28.240 --> 03:46:29.783 -I love you. - -03:46:44.340 --> 03:46:46.092 -Oi, watch yourself! - -03:46:46.134 --> 03:46:47.259 -Marines! - -03:46:47.302 --> 03:46:48.843 -I can't breathe! - -03:46:50.639 --> 03:46:51.678 -Elizabeth! - -03:46:54.767 --> 03:46:55.810 -Move! - -03:46:56.685 --> 03:46:58.977 -Goodness sake! - -03:47:06.695 --> 03:47:08.904 -You men! With me! - -03:47:20.167 --> 03:47:21.334 -Move! - -03:47:31.094 --> 03:47:32.679 -Come on! - -03:47:42.774 --> 03:47:43.897 -Come on, men! - -03:48:09.509 --> 03:48:13.510 -I thought we might have to endure some -manner of ill-conceived escape attempt. - -03:48:14.346 --> 03:48:15.929 -But not from you. - -03:48:16.014 --> 03:48:19.851 -On our return to Port Royal, -I granted you clemency. - -03:48:19.894 --> 03:48:21.560 -And this is how you thank me? - -03:48:21.603 --> 03:48:23.687 -By throwing in your lot with him? - -03:48:23.730 --> 03:48:25.314 -He's a pirate! - -03:48:25.399 --> 03:48:27.359 -And a good man. - -03:48:28.151 --> 03:48:30.403 -If all I've achieved here -is that the hangman - -03:48:30.446 --> 03:48:32.572 -will own two pairs -of boots instead of one, - -03:48:32.656 --> 03:48:34.282 -so be it. - -03:48:34.366 --> 03:48:36.242 -At least my conscience will be clear. - -03:48:36.285 --> 03:48:39.246 -You forget your place, Turner. - -03:48:40.788 --> 03:48:42.415 -It's right here, - -03:48:42.458 --> 03:48:43.917 -between you and Jack. - -03:48:47.923 --> 03:48:49.589 -As is mine. - -03:48:49.673 --> 03:48:51.048 -Elizabeth! - -03:48:52.510 --> 03:48:53.674 -Lower your weapons. - -03:48:54.470 --> 03:48:56.470 -For goodness sake, put them down! - -03:49:01.561 --> 03:49:04.480 -So this is where -your heart truly lies, then. - -03:49:06.105 --> 03:49:07.607 -It is. - -03:49:16.114 --> 03:49:19.744 -Well! I'm actually feeling -rather good about this. - -03:49:19.787 --> 03:49:22.329 -I think we've all arrived -at a very special place, eh? - -03:49:22.413 --> 03:49:23.706 -- Oh. -- Spiritually. - -03:49:23.790 --> 03:49:25.791 -Ecumenically. - -03:49:25.876 --> 03:49:27.960 -Grammatically. - -03:49:28.544 --> 03:49:31.128 -I want you to know that -I was rooting for you, mate. - -03:49:32.424 --> 03:49:33.424 -Know that. - -03:49:37.429 --> 03:49:38.930 -Elizabeth. - -03:49:40.890 --> 03:49:43.475 -It would never have worked -between us, darling. - -03:49:44.936 --> 03:49:46.813 -I'm sorry. - -03:49:48.941 --> 03:49:49.941 -Will! - -03:49:52.236 --> 03:49:53.903 -Nice hat. - -03:49:55.864 --> 03:49:57.447 -Friends! - -03:49:59.367 --> 03:50:02.161 -This the day that you will always - -03:50:02.204 --> 03:50:04.831 -remember as the day that... - -03:50:09.795 --> 03:50:12.462 -Idiot! He's nowhere to go -but back to the noose! - -03:50:14.883 --> 03:50:16.718 -Sail ho! - -03:50:24.269 --> 03:50:26.895 -What's your plan of action? - -03:50:27.645 --> 03:50:28.645 -Sir? - -03:50:33.027 --> 03:50:35.484 -Perhaps on the rare occasion - -03:50:35.527 --> 03:50:39.407 -pursuing the right course -demands an act of piracy, - -03:50:39.491 --> 03:50:43.286 -piracy itself can be the right course? - -03:50:47.540 --> 03:50:48.833 -Mr. Turner! - -03:50:54.923 --> 03:50:57.758 -I will accept the consequences -of my actions. - -03:51:03.723 --> 03:51:05.349 -This is a beautiful sword. - -03:51:07.810 --> 03:51:09.561 -I would expect the man who made it - -03:51:09.604 --> 03:51:14.400 -to show the same care and devotion -in every aspect of his life. - -03:51:16.444 --> 03:51:18.196 -Thank you. - -03:51:21.074 --> 03:51:22.114 -Commodore! - -03:51:22.199 --> 03:51:23.910 -What about Sparrow? - -03:51:25.827 --> 03:51:28.746 -Oh, I think we can afford -to give him one day's head start. - -03:51:35.253 --> 03:51:36.923 -So... - -03:51:38.006 --> 03:51:41.093 -This is the path you've chosen, is it? - -03:51:42.469 --> 03:51:44.761 -After all... - -03:51:44.804 --> 03:51:46.349 -...he is a blacksmith. - -03:51:47.350 --> 03:51:48.601 -No. - -03:51:53.314 --> 03:51:55.608 -He's a pirate. - -03:52:20.632 --> 03:52:22.299 -Heave! - -03:52:31.852 --> 03:52:34.437 -Thought you were supposed -to keep to the code, eh? - -03:52:34.479 --> 03:52:37.148 -We figured they were more actual... - -03:52:37.232 --> 03:52:39.192 -...guidelines. - -03:52:43.322 --> 03:52:45.031 -Thank you. - -03:52:46.158 --> 03:52:47.534 -Captain Sparrow. - -03:52:51.830 --> 03:52:53.414 -The Black Pearl is yours! - -03:53:09.222 --> 03:53:10.849 -On deck, you scabrous dogs! - -03:53:10.933 --> 03:53:12.601 -Hands to braces! - -03:53:12.685 --> 03:53:14.769 -Let go and haul to run free. - -03:53:16.439 --> 03:53:18.231 -Now... - -03:53:18.316 --> 03:53:20.150 -Bring me that horizon. - -03:53:27.448 --> 03:53:29.534 -♪ ...And really bad eggs - -03:53:32.872 --> 03:53:35.373 -♪ Drink up, me hearties -Yo ho ♪ - diff --git a/files/classes/badges.py b/files/classes/badges.py index aafe0a1c0..c6230c645 100644 --- a/files/classes/badges.py +++ b/files/classes/badges.py @@ -60,7 +60,7 @@ class Badge(Base): if self.badge_id == 95: return self.user.bird if self.badge_id == 96: return self.user.flairchanged if self.badge_id == 97: return self.user.longpost - if self.badge_id == 98: return self.user.marseyawarded + if self.badge_id == 98: return self.user.hieroglyphs if self.badge_id == 109: return self.user.rehab if self.badge_id == 167: return self.user.owoify if self.badge_id == 168: return self.user.bite diff --git a/files/classes/comment.py b/files/classes/comment.py index 318eb4396..1b07a89ce 100644 --- a/files/classes/comment.py +++ b/files/classes/comment.py @@ -20,6 +20,13 @@ from files.helpers.sorting_and_time import * from .saves import CommentSaveRelationship +def get_emoji_awards_emojis(obj, v, kind, OVER_18_EMOJIS): + if g.show_nsfw: + emojis = [x.note for x in obj.awards if x.kind == kind] + else: + emojis = [x.note for x in obj.awards if x.kind == kind and x.note not in OVER_18_EMOJIS] + return reversed(emojis[:20]) + def get_award_classes(obj, v, title=False): classes = [] @@ -57,8 +64,8 @@ def normalize_urls_runtime(body, v): if v and v.nitter: body = twitter_to_nitter_regex.sub(r'\1https://nitter.net/', body) - if v and v.imginn: - body = body.replace('https://instagram.com/', 'https://imginn.com/') + if v and v.imgsed: + body = body.replace('https://instagram.com/', 'https://imgsed.com/') if not v or v.controversial: captured = [] @@ -317,16 +324,10 @@ class Comment(Base): @lazy def award_count(self, kind, v): - if v and v.poor and kind not in FISTMAS_AWARDS + HOMOWEEN_AWARDS: + if v and v.poor: return 0 return len([x for x in self.awards if x.kind == kind]) - @lazy - def emoji_award_emojis(self, v, OVER_18_EMOJIS): - if g.show_nsfw: - return [x.note for x in self.awards if x.kind == "emoji"][:10] - return [x.note for x in self.awards if x.kind == "emoji" and x.note not in OVER_18_EMOJIS][:10] - @property @lazy def json(self): @@ -505,3 +506,12 @@ class Comment(Base): @lazy def award_classes(self, v): return get_award_classes(self, v) + + @lazy + def emoji_awards_emojis(self, v, kind, OVER_18_EMOJIS): + return get_emoji_awards_emojis(self, v, kind, OVER_18_EMOJIS) + + @property + @lazy + def is_effortpost(self): + return False diff --git a/files/classes/orgy.py b/files/classes/orgy.py index a11169f1b..80bee5d2f 100644 --- a/files/classes/orgy.py +++ b/files/classes/orgy.py @@ -1,5 +1,6 @@ import time from flask import g, abort +import requests from sqlalchemy import Column, or_ from sqlalchemy.sql.sqltypes import * @@ -7,15 +8,18 @@ from sqlalchemy.sql.sqltypes import * from files.classes import Base from files.helpers.lazy import lazy +from files.helpers.config.const import * class Orgy(Base): __tablename__ = "orgies" - type = Column(String, primary_key=True) + created_utc = Column(Integer, primary_key=True) + type = Column(String) data = Column(String) title = Column(String) - created_utc = Column(Integer) + start_utc = Column(Integer) end_utc = Column(Integer) + started = Column(Boolean, default=False) def __init__(self, *args, **kwargs): if "created_utc" not in kwargs: kwargs["created_utc"] = int(time.time()) @@ -26,19 +30,30 @@ class Orgy(Base): @property @lazy - def real_created_utc(self): - t = self.created_utc + def real_start_utc(self): + t = self.start_utc if int(time.time()) - t > 3000: t += 303 return t -def get_orgy(v): +def get_running_orgy(v): if not (v and v.allowed_in_chat): return None - orgy = g.db.query(Orgy).one_or_none() + refresh = False - if orgy and orgy.end_utc and orgy.end_utc < time.time(): + ended_orgies = g.db.query(Orgy).filter(Orgy.end_utc != None, Orgy.end_utc < time.time()).all() + for orgy in ended_orgies: + if orgy.started: + refresh = True g.db.delete(orgy) - return None + + orgy = g.db.query(Orgy).filter(Orgy.start_utc < time.time()).order_by(Orgy.start_utc).first() + if orgy and not orgy.started: + orgy.started = True + g.db.add(orgy) + refresh = True + + if refresh: + requests.post('http://localhost:5001/refresh_chat', headers={"Host": SITE}) return orgy diff --git a/files/classes/post.py b/files/classes/post.py index 44a2d1f02..352e3b9be 100644 --- a/files/classes/post.py +++ b/files/classes/post.py @@ -15,7 +15,7 @@ from files.helpers.lazy import lazy from files.helpers.regex import * from files.helpers.sorting_and_time import make_age_string -from .comment import normalize_urls_runtime, add_options, get_award_classes +from .comment import * from .polls import * from .hole import * from .subscriptions import * @@ -251,22 +251,27 @@ class Post(Base): @lazy def award_count(self, kind, v): - if v and v.poor and kind not in FISTMAS_AWARDS + HOMOWEEN_AWARDS: + if v and v.poor: return 0 if self.distinguish_level and SITE_NAME == 'WPD': return 0 num = len([x for x in self.awards if x.kind == kind]) - if num > 4 and kind not in {"shit", "fireflies", "gingerbread", "pumpkin"}: - return 4 - return num - @lazy - def emoji_award_emojis(self, v, OVER_18_EMOJIS): - if g.show_nsfw: - return [x.note for x in self.awards if x.kind == "emoji"][:10] - return [x.note for x in self.awards if x.kind == "emoji" and x.note not in OVER_18_EMOJIS][:10] + if kind in {"shit", "fireflies"}: + return num + + if kind == "stalker": + return min(num, 25) + + if kind in {"emoji", "emoji-hz"}: + return min(num, 20) + + if kind in {"gingerbread", "pumpkin"}: + return min(num, 10) + + return min(num, 4) @lazy def realurl(self, v): @@ -383,3 +388,12 @@ class Post(Base): @lazy def award_classes(self, v, title=False): return get_award_classes(self, v, title) + + @lazy + def emoji_awards_emojis(self, v, kind, OVER_18_EMOJIS): + return get_emoji_awards_emojis(self, v, kind, OVER_18_EMOJIS) + + @property + @lazy + def is_effortpost(self): + return len(self.body) >= 1500 diff --git a/files/classes/user.py b/files/classes/user.py index c7ed0210a..c3da14150 100644 --- a/files/classes/user.py +++ b/files/classes/user.py @@ -58,7 +58,7 @@ class User(Base): profile_background = Column(String) flair = deferred(Column(String)) flair_html = Column(String) - titlecolor = Column(String, default=DEFAULT_COLOR) + flaircolor = Column(String, default=DEFAULT_COLOR) theme = Column(String, default=DEFAULT_THEME) themecolor = Column(String, default=DEFAULT_COLOR) song = Column(String) @@ -71,7 +71,7 @@ class User(Base): patron_utc = Column(Integer, default=0) verified = Column(String) verifiedcolor = Column(String) - marseyawarded = Column(Integer, default=0) + hieroglyphs = Column(Integer, default=0) rehab = Column(Integer, default=0) longpost = Column(Integer, default=0) bird = Column(Integer, default=0) @@ -103,7 +103,7 @@ class User(Base): newtabexternal = Column(Boolean, default=True) reddit = Column(String, default='old.reddit.com') nitter = Column(Boolean) - imginn = Column(Boolean) + imgsed = Column(Boolean) frontsize = Column(Integer, default=25) controversial = Column(Boolean, default=False) bio = deferred(Column(String)) @@ -1317,12 +1317,6 @@ class User(Base): return output - @property - @lazy - def can_see_my_shit(self): - v = g.v - return not self.shadowbanned or (v and (v.id == self.id or v.can_see_shadowbanned)) - @property @lazy def ordered_badges(self): @@ -1333,7 +1327,7 @@ class User(Base): if not self.sig_html or not self.patron: return '' - if v and (not v.show_sigs or v.poor): + if v and not v.show_sigs: return '' return f'

    {self.sig_html}
    ' diff --git a/files/helpers/actions.py b/files/helpers/actions.py index efffe01f4..3ce245e80 100644 --- a/files/helpers/actions.py +++ b/files/helpers/actions.py @@ -27,10 +27,10 @@ from files.routes.routehelpers import check_for_alts def _archiveorg(url): try: - requests.post('https://ghostarchive.org/archive2', data={"archive": url}, headers=HEADERS, timeout=10, proxies=proxies) + requests.post('https://ghostarchive.org/archive2', data={"archive": url}, headers=HEADERS, timeout=10) except: pass try: - requests.get(f'https://web.archive.org/save/{url}', headers=HEADERS, timeout=10, proxies=proxies) + requests.get(f'https://web.archive.org/save/{url}', headers=HEADERS, timeout=10) except: pass @@ -61,7 +61,9 @@ def execute_snappy(post, v): post_ping_group_count = len(list(group_mention_regex.finditer(post.body))) - if post_ping_group_count > 3: + if SITE_NAME == 'WPD' and ('killing myself' in post.title.lower() or (post.hole != 'suicide' and 'suicide' in post.title.lower())): + body = "https://i.watchpeopledie.tv/images/1697382435294321.webp" + elif post_ping_group_count > 3: body = "Unnecessary and uncalled for ping :marseydownvotemad: two more strikes and you're getting blocked + megadownvoted buddy, don't test your luck" vote = Vote(user_id=SNAPPY_ID, vote_type=-1, @@ -72,11 +74,13 @@ def execute_snappy(post, v): post.downvotes += 1 elif v.id == CARP_ID: if random.random() < 0.08: - body = random.choice(("i love you carp", "https://i.rdrama.net/images/16614707883108485.webp", "https://i.rdrama.net/images/1636916964YyM.webp", "https://youtube.com/watch?v=zRbQHTdsjuY", "https://i.rdrama.net/images/1696250281381682.webp")) + body = random.choice(("i love you carp", "https://i.rdrama.net/images/16614707883108485.webp", "https://i.rdrama.net/images/1636916964YyM.webp", "https://youtube.com/watch?v=zRbQHTdsjuY", "https://i.rdrama.net/images/1696250281381682.webp", "https://i.rdrama.net/images/16975678508317988.webp")) elif IS_DKD(): body = ":#donkeykongfuckoffcarp:" elif IS_HOMOWEEN(): body = "F̵̽̉U̷̓̕C̵̟̍K̴̾̍ ̵́̒O̶͐̇F̷͗̐F̴͛̄ ̸̆͠CARP" + elif IS_FISTMAS(): + body = "Merry Christmas Carp :marseychristmasgift2:" else: body = ":#marseyfuckoffcarp:" elif v.id == AEVANN_ID: @@ -506,16 +510,17 @@ def execute_antispam_comment_check(body, v): g.db.commit() abort(403, "Too much spam!") -def execute_dylan(v): - if "dylan" in v.username.lower() and "hewitt" in v.username.lower(): +def execute_by_username(v): + username = v.username.lower() + if username.startswith("icosaka") or ("dylan" in username and "hewitt" in username): v.shadowbanned = AUTOJANNY_ID - v.ban_reason = "Dylan" + v.ban_reason = "Banned username" g.db.add(v) ma = ModAction( kind="shadowban", user_id=AUTOJANNY_ID, target_user_id=v.id, - _note=f'reason: "Dylan ({v.age} seconds)"' + _note=f'reason: "Banned username ({v.age} seconds)"' ) g.db.add(ma) @@ -523,7 +528,7 @@ def execute_under_siege(v, target, body, kind): if v.shadowbanned: return if SITE == 'watchpeopledie.tv': - execute_dylan(v) + execute_by_username(v) if v.shadowbanned: return if kind != 'post': return @@ -603,7 +608,7 @@ def execute_lawlz_actions(v, p): g.db.add(ma_3) -def process_poll_options(v, target): +def process_options(v, target): patterns = [(poll_regex, 0), (choice_regex, 1)] diff --git a/files/helpers/alerts.py b/files/helpers/alerts.py index c2b887bde..9c2eb8ed5 100644 --- a/files/helpers/alerts.py +++ b/files/helpers/alerts.py @@ -53,6 +53,8 @@ def send_repeatable_notification(uid, text): push_notif({uid}, 'New notification', text, f'{SITE_FULL}/notification/{cid}') + return notif + def send_notification(uid, text): if uid in BOT_IDs: return @@ -94,8 +96,12 @@ def notif_comment(text): def notif_comment2(p): + if p.ghost: + author_link = '@👻' + else: + author_link = f'@{p.author_name}' - text = f"@{p.author_name} has mentioned you: [{p.title}](/post/{p.id})" + text = f'{author_link} has mentioned you: {p.title_html}' search_html = f'% has mentioned you: /h/{p.hole}" - text_html = sanitize(text, blackjack="notification", post_mention_notif=True) - return create_comment(text_html), text + return create_comment(text), text def add_notif(cid, uid, text, pushnotif_url=''): diff --git a/files/helpers/assetcache.py b/files/helpers/assetcache.py index 843f2395a..037ea1e7b 100644 --- a/files/helpers/assetcache.py +++ b/files/helpers/assetcache.py @@ -14,7 +14,6 @@ ASSET_CACHE = defaultdict(lambda: None) ASSET_SUBDIRS = [ '/css', '/js', '/events/shared/js', - '/events/DKD/js', '/events/fistmas/css', '/events/fistmas/js', '/events/homoween/css', '/events/homoween/js', ] diff --git a/files/helpers/cloudflare.py b/files/helpers/cloudflare.py index 777a9d12f..c1a73ac40 100644 --- a/files/helpers/cloudflare.py +++ b/files/helpers/cloudflare.py @@ -13,7 +13,8 @@ def _request_from_cloudflare(url, method, post_data_str): if not CLOUDFLARE_AVAILABLE: return False try: res = str(requests.request(method, f"{CLOUDFLARE_API_URL}/zones/{CF_ZONE}/{url}", headers=CF_HEADERS, data=post_data_str, timeout=CLOUDFLARE_REQUEST_TIMEOUT_SECS)) - except: + except Exception as e: + print(e, flush=True) return False return res == "" diff --git a/files/helpers/config/awards.py b/files/helpers/config/awards.py index 89d5d251f..9272907e3 100644 --- a/files/helpers/config/awards.py +++ b/files/helpers/config/awards.py @@ -2,15 +2,12 @@ from copy import deepcopy from files.helpers.config.const import * -FISTMAS_AWARDS = ("fireplace", "snow", "gingerbread", "lights", "frostbite", "candycane") -HOMOWEEN_AWARDS = ("spiders", "fog", "bones", "pumpkin", "candy-corn", "ectoplasm", "stab", "upsidedown", "flashlight", "haunt", "jumpscare", "bite", "vax") - #Personal awards are disabled on ghost posts and comments bc they can be used to figure out the identity of the author through https://rdrama.net/badges AWARDS = { "fallback": { "kind": "fallback", "title": "Unknown", - "description": "", + "description": "???", "icon": "fas fa-block-question", "color": "text-white", "price": 0, @@ -18,7 +15,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": False, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, ### Deprecated @@ -33,12 +31,13 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": False, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, "ghost": { "kind": "ghost", "title": "Ghost", - "description": "", + "description": "???", "icon": "fas fa-ghost", "color": "text-white", "price": 3000, @@ -46,12 +45,13 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": False, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, "nword": { "kind": "nword", "title": "Nword Pass", - "description": "", + "description": "???", "icon": "fas fa-edit", "color": "text-success", "price": 10000, @@ -59,12 +59,13 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": False, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, "fish": { "kind": "fish", "title": "Fish", - "description": "", + "description": "???", "icon": "fas fa-fish", "color": "text-gold", "price": 20000, @@ -72,7 +73,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": False, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, @@ -80,7 +82,7 @@ AWARDS = { "lootbox": { "kind": "lootbox", "title": "Lootbox", - "description": "", + "description": "???", "icon": "fas fa-box-open", "color": "text-blue", "price": 1000, @@ -88,14 +90,15 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": IS_FISTMAS() or IS_HOMOWEEN(), - "positive": True, + "negative": False, + "included_in_lootbox": False, }, ### Fistmas "fireplace": { "kind": "fireplace", "title": "Fireplace", - "description": "", + "description": "???", "icon": "fas fa-fireplace", "color": "text-orange", "price": 100, @@ -103,12 +106,13 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": IS_FISTMAS(), - "positive": True, + "negative": False, + "included_in_lootbox": True, }, "snow": { "kind": "snow", "title": "Snow", - "description": "", + "description": "???", "icon": "fas fa-snowflake", "color": "text-lightblue", "price": 300, @@ -116,12 +120,13 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": IS_FISTMAS(), - "positive": True, + "negative": False, + "included_in_lootbox": True, }, "gingerbread": { "kind": "gingerbread", "title": "Gingerbread", - "description": "", + "description": "???", "icon": "fas fa-gingerbread-man", "color": "text-brown", "price": 300, @@ -129,12 +134,13 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": IS_FISTMAS(), - "positive": True, + "negative": False, + "included_in_lootbox": True, }, "lights": { "kind": "lights", "title": "Lights", - "description": "", + "description": "???", "icon": "fas fa-lights-holiday", "color": "text-success", "price": 300, @@ -142,12 +148,13 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": IS_FISTMAS(), - "positive": True, + "negative": False, + "included_in_lootbox": True, }, "frostbite": { "kind": "frostbite", "title": "Frostbite", - "description": "", + "description": "???", "icon": "fas fa-temperature-snow", "color": "text-blue", "price": 300, @@ -155,12 +162,13 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": IS_FISTMAS(), - "positive": True, + "negative": False, + "included_in_lootbox": True, }, "candycane": { "kind": "candycane", "title": "Candy Cane", - "description": "", + "description": "???", "icon": "fas fa-candy-cane", "color": "text-danger", "price": 300, @@ -168,27 +176,57 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": IS_FISTMAS(), - "positive": True, + "negative": False, + "included_in_lootbox": True, }, "grinch": { "kind": "grinch", "title": "Grinch", - "description": "", + "description": "???", "icon": "fas fa-angry", "color": "text-green-500", "price": 1000, "deflectable": True, "cosmetic": False, "ghost": False, - "enabled": IS_FISTMAS(), - "positive": True, + "enabled": IS_FISTMAS() and SITE_NAME != "WPD", + "negative": False, + "included_in_lootbox": False, }, ### Homoween + "bite": { + "kind": "bite", + "title": "Zombie Bite", + "description": "???", + "icon": "fas fa-biohazard", + "color": "text-danger", + "price": 100, + "deflectable": True, + "cosmetic": False, + "ghost": False, + "enabled": IS_HOMOWEEN(), + "negative": False, + "included_in_lootbox": False, + }, + "vax": { + "kind": "vax", + "title": "Vaxxmaxx", + "description": "???", + "icon": "fas fa-syringe", + "color": "text-blue", + "price": 200, + "deflectable": True, + "cosmetic": False, + "ghost": False, + "enabled": IS_HOMOWEEN(), + "negative": False, + "included_in_lootbox": False, + }, "spiders": { "kind": "spiders", "title": "Spiders", - "description": "", + "description": "???", "icon": "fas fa-spider", "color": "text-black", "price": 200, @@ -196,12 +234,13 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": IS_HOMOWEEN(), - "positive": True, + "negative": False, + "included_in_lootbox": True, }, "fog": { "kind": "fog", "title": "Fog", - "description": "", + "description": "???", "icon": "fas fa-smoke", "color": "text-gray", "price": 200, @@ -209,12 +248,13 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": IS_HOMOWEEN(), - "positive": True, + "negative": False, + "included_in_lootbox": True, }, "bones": { "kind": "bones", "title": "Bones", - "description": "", + "description": "???", "icon": "fas fa-bone", "color": "text-white", "price": 200, @@ -222,12 +262,13 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": IS_HOMOWEEN(), - "positive": True, + "negative": False, + "included_in_lootbox": True, }, "pumpkin": { "kind": "pumpkin", "title": "Pumpkin", - "description": "", + "description": "???", "icon": "fas fa-jack-o-lantern", "color": "text-orange", "price": 200, @@ -235,12 +276,27 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": IS_HOMOWEEN(), - "positive": True, + "negative": False, + "included_in_lootbox": True, + }, + "stalker": { + "kind": "stalker", + "title": "Stalker", + "description": "???", + "icon": "fas fa-scarecrow", + "color": "text-primary", + "price": 250, + "deflectable": False, + "cosmetic": True, + "ghost": True, + "enabled": IS_HOMOWEEN(), + "negative": False, + "included_in_lootbox": True, }, "candy-corn": { "kind": "candy-corn", "title": "Candy Corn", - "description": "", + "description": "???", "icon": "fas fa-candy-corn", "color": "text-orange", "price": 400, @@ -248,12 +304,13 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": IS_HOMOWEEN(), - "positive": True, + "negative": False, + "included_in_lootbox": True, }, "ectoplasm": { "kind": "ectoplasm", "title": "Ectoplasm", - "description": "", + "description": "???", "icon": "fas fa-ghost", "color": "text-success", "price": 400, @@ -261,12 +318,13 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": IS_HOMOWEEN(), - "positive": True, + "negative": False, + "included_in_lootbox": True, }, "stab": { "kind": "stab", "title": "Stab", - "description": "", + "description": "???", "icon": "fas fa-knife-kitchen", "color": "text-danger", "price": 400, @@ -274,25 +332,13 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": IS_HOMOWEEN(), - "positive": True, - }, - "upsidedown": { - "kind": "upsidedown", - "title": "Upside Down", - "description": "", - "icon": "fas fa-trees", - "color": "", - "price": 400, - "deflectable": False, - "cosmetic": True, - "ghost": True, - "enabled": IS_HOMOWEEN(), - "positive": True, + "negative": False, + "included_in_lootbox": True, }, "flashlight": { "kind": "flashlight", "title": "Flashlight", - "description": "", + "description": "???", "icon": "fas fa-flashlight", "color": "text-black", "price": 400, @@ -300,12 +346,13 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": IS_HOMOWEEN(), - "positive": True, + "negative": False, + "included_in_lootbox": True, }, "haunt": { "kind": "haunt", "title": "Haunt", - "description": "", + "description": "???", "icon": "fas fa-book-dead", "color": "text-warning", "price": 400, @@ -313,13 +360,13 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": IS_HOMOWEEN(), - "positive": True, + "negative": False, + "included_in_lootbox": True, }, - "jumpscare": { "kind": "jumpscare", "title": "Jumpscare", - "description": "", + "description": "???", "icon": "fas fa-coffin-cross", "color": "text-purple", "price": 500, @@ -327,46 +374,36 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": IS_HOMOWEEN(), - "positive": True, + "negative": False, + "included_in_lootbox": True, }, - "bite": { - "kind": "bite", - "title": "Zombie Bite", - "description": "", - "icon": "fas fa-biohazard", - "color": "text-danger", - "price": 500, - "deflectable": True, - "cosmetic": False, - "ghost": False, + "upsidedown": { + "kind": "upsidedown", + "title": "Upside Down", + "description": "???", + "icon": "fas fa-trees", + "color": "", + "price": 1000, + "deflectable": False, + "cosmetic": True, + "ghost": True, "enabled": IS_HOMOWEEN(), - "positive": True, + "negative": False, + "included_in_lootbox": False, }, - "vax": { - "kind": "vax", - "title": "Vaxxmaxx", - "description": "", - "icon": "fas fa-syringe", - "color": "text-blue", - "price": 500, - "deflectable": True, - "cosmetic": False, - "ghost": False, - "enabled": IS_HOMOWEEN(), - "positive": True, - }, - "hw-grinch": { - "kind": "hw-grinch", + "hallowgrinch": { + "kind": "hallowgrinch", "title": "Hallowgrinch", - "description": "", + "description": "???", "icon": "fas fa-angry", "color": "text-orange", "price": 1000, "deflectable": True, "cosmetic": False, "ghost": False, - "enabled": IS_HOMOWEEN(), - "positive": True, + "enabled": IS_HOMOWEEN() and SITE_NAME != "WPD", + "negative": False, + "included_in_lootbox": False, }, ### Birthgay/Birthdead @@ -381,7 +418,8 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": IS_BIRTHGAY() or IS_BIRTHDEAD(), - "positive": True, + "negative": False, + "included_in_lootbox": False, }, ### Standard @@ -396,7 +434,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, "marsify": { "kind": "marsify", @@ -409,7 +448,36 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": False, + "negative": True, + "included_in_lootbox": False, + }, + "emoji": { + "kind": "emoji", + "title": "Emoji", + "description": "Summons a moving emoji on the post.", + "icon": "fas fa-smile-beam", + "color": "text-yellow", + "price": 100, + "deflectable": False, + "cosmetic": True, + "ghost": True, + "enabled": True, + "negative": False, + "included_in_lootbox": False, + }, + "emoji-hz": { + "kind": "emoji-hz", + "title": "Emoji", + "description": "Summons a moving emoji on the post.", + "icon": "fas fa-smile-beam", + "color": "text-yellow", + "price": 200, + "deflectable": False, + "cosmetic": True, + "ghost": True, + "enabled": False, + "negative": False, + "included_in_lootbox": False, }, "rainbow": { "kind": "rainbow", @@ -422,7 +490,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": not FEATURES['HOUSES'], - "positive": False, + "negative": True, + "included_in_lootbox": False, }, "sharpen": { "kind": "sharpen", @@ -435,7 +504,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": not FEATURES['HOUSES'], - "positive": False, + "negative": True, + "included_in_lootbox": False, }, "shit": { "kind": "shit", @@ -448,7 +518,8 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": True, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, "fireflies": { "kind": "fireflies", @@ -461,46 +532,8 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": True, - "positive": True, - }, - "train": { - "kind": "train", - "title": "Train", - "description": "Summons a train on the post.", - "icon": "fas fa-train", - "color": "text-pink", - "price": 300, - "deflectable": False, - "cosmetic": True, - "ghost": True, - "enabled": True, - "positive": True, - }, - "scooter": { - "kind": "scooter", - "title": "Scooter", - "description": "Summons a scooter on the post.", - "icon": "fas fa-flag-usa", - "color": "text-muted", - "price": 300, - "deflectable": False, - "cosmetic": True, - "ghost": True, - "enabled": True, - "positive": True, - }, - "emoji": { - "kind": "emoji", - "title": "Emoji", - "description": "Summons a bouncing emoji on the post.", - "icon": "fas fa-smile-beam", - "color": "text-yellow", - "price": 300, - "deflectable": False, - "cosmetic": True, - "ghost": True, - "enabled": True, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, "firework": { "kind": "firework", @@ -513,7 +546,8 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": True, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, "ricardo": { "kind": "ricardo", @@ -526,7 +560,8 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": True, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, "tilt": { "kind": "tilt", @@ -539,7 +574,8 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": True, - "positive": False, + "negative": True, + "included_in_lootbox": False, }, "glowie": { "kind": "glowie", @@ -552,7 +588,8 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": True, - "positive": False, + "negative": True, + "included_in_lootbox": False, }, "gold": { "kind": "gold", @@ -565,7 +602,8 @@ AWARDS = { "cosmetic": True, "ghost": True, "enabled": True, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, "spider": { "kind": "spider", @@ -578,7 +616,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": False, + "negative": True, + "included_in_lootbox": False, }, "owoify": { "kind": "owoify", @@ -591,7 +630,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": not FEATURES['HOUSES'], - "positive": False, + "negative": True, + "included_in_lootbox": False, }, "flairlock": { "kind": "flairlock", @@ -604,7 +644,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": False, + "negative": True, + "included_in_lootbox": False, }, "rehab": { "kind": "rehab", @@ -617,7 +658,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": False, + "negative": True, + "included_in_lootbox": False, }, "namelock": { "kind": "namelock", @@ -630,7 +672,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": False, + "negative": True, + "included_in_lootbox": False, }, "queen": { "kind": "queen", @@ -643,7 +686,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": False, + "negative": True, + "included_in_lootbox": False, }, "offsitementions": { "kind": "offsitementions", @@ -656,7 +700,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, "unpin": { "kind": "unpin", @@ -669,7 +714,8 @@ AWARDS = { "cosmetic": False, "ghost": True, "enabled": True, - "positive": False, + "negative": True, + "included_in_lootbox": False, }, "chud": { "kind": "chud", @@ -682,7 +728,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": False, + "negative": True, + "included_in_lootbox": False, }, "pin": { "kind": "pin", @@ -695,7 +742,8 @@ AWARDS = { "cosmetic": False, "ghost": True, "enabled": True, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, "progressivestack": { "kind": "progressivestack", @@ -708,7 +756,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, "pizzashill": { "kind": "pizzashill", @@ -721,7 +770,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": False, + "negative": True, + "included_in_lootbox": False, }, "bird": { "kind": "bird", @@ -734,10 +784,11 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": False, + "negative": True, + "included_in_lootbox": False, }, - "marsey": { - "kind": "marsey", + "hieroglyphs": { + "kind": "hieroglyphs", "title": "Hieroglyphs", "description": "Makes the recipient unable to post/comment anything but emojis for 24 hours.", "icon": "fas fa-ankh", @@ -747,7 +798,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": False, + "negative": True, + "included_in_lootbox": False, }, "ban": { "kind": "ban", @@ -760,7 +812,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": False, + "negative": True, + "included_in_lootbox": False, }, "unban": { "kind": "unban", @@ -773,7 +826,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, "deflector": { "kind": "deflector", @@ -782,11 +836,12 @@ AWARDS = { "icon": "fas fa-shield", "color": "text-pink", "price": 2500, - "deflectable": True, + "deflectable": False, "cosmetic": False, "ghost": False, "enabled": True, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, "benefactor": { "kind": "benefactor", @@ -794,12 +849,13 @@ AWARDS = { "description": f"Grants one month of {patron} status and 2000 marseybux to the recipient. Cannot be used on yourself.", "icon": "fas fa-gift", "color": "text-blue", - "price": 4000, + "price": 2500, "deflectable": False, "cosmetic": False, "ghost": False, "enabled": FEATURES['MARSEYBUX'], - "positive": True, + "negative": False, + "included_in_lootbox": False, }, "eye": { "kind": "eye", @@ -812,7 +868,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, "grass": { "kind": "grass", @@ -825,7 +882,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": False, + "negative": True, + "included_in_lootbox": False, }, "unblockable": { "kind": "unblockable", @@ -838,7 +896,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, "pause": { "kind": "pause", @@ -851,7 +910,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, "unpausable": { "kind": "unpausable", @@ -864,7 +924,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, "alt": { "kind": "alt", @@ -877,7 +938,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, "checkmark": { "kind": "checkmark", @@ -890,7 +952,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, "pride": { "kind": "pride", @@ -903,7 +966,8 @@ AWARDS = { "cosmetic": False, "ghost": False, "enabled": True, - "positive": True, + "negative": False, + "included_in_lootbox": False, }, } @@ -925,7 +989,8 @@ HOUSE_AWARDS = { "deflectable": True, "cosmetic": False, "ghost": False, - "positive": False, + "negative": True, + "included_in_lootbox": False, }, "Femboy": { "kind": "Femboy", @@ -937,7 +1002,8 @@ HOUSE_AWARDS = { "deflectable": True, "cosmetic": False, "ghost": False, - "positive": False, + "negative": True, + "included_in_lootbox": False, }, "Vampire": { "kind": "Vampire", @@ -949,7 +1015,8 @@ HOUSE_AWARDS = { "deflectable": True, "cosmetic": False, "ghost": False, - "positive": False, + "negative": True, + "included_in_lootbox": False, }, "Racist": { "kind": "Racist", @@ -961,7 +1028,8 @@ HOUSE_AWARDS = { "deflectable": True, "cosmetic": False, "ghost": False, - "positive": False, + "negative": True, + "included_in_lootbox": False, }, "Edgy": { "kind": "Edgy", @@ -973,7 +1041,8 @@ HOUSE_AWARDS = { "deflectable": True, "cosmetic": False, "ghost": False, - "positive": False, + "negative": True, + "included_in_lootbox": False, }, } diff --git a/files/helpers/config/boosted_sites.py b/files/helpers/config/boosted_sites.py index ebcb1d171..d1c2cd37f 100644 --- a/files/helpers/config/boosted_sites.py +++ b/files/helpers/config/boosted_sites.py @@ -38,6 +38,7 @@ BOOSTED_SITES = { #forums #'all sites with the word "forum" in the domain', + 'kiwifarms.net', 'kiwifarms.st', 'onionfarms.com', 'tattle.life', diff --git a/files/helpers/config/const.py b/files/helpers/config/const.py index 2727e6cb6..41869611c 100644 --- a/files/helpers/config/const.py +++ b/files/helpers/config/const.py @@ -250,9 +250,9 @@ CHUD_MSGS = ( "Avast, ye scurvy cur! Yer {type} be walkin' the plank for forgettin' to include `{CHUD_PHRASE}`! We be helpin' ye, right enough - we'll ne'er let ye post or comment anythin' that doesn't be expressin' yer love an' acceptance o' minorities! Heave to an' resubmit yer {type} with `{CHUD_PHRASE}` included, or it'll be the deep six for ye, savvy? This be an automated message; if ye need help, ye can message us ['ere](/contact). Arrr!", - "Hi @{username}, We're sorry to say that your {type} has been automatically removed because you forgot to include the phrase `{CHUD_PHRASE}`. Here at our church, we strongly believe that `{CHUD_PHRASE}` and we want to make sure that all of our members feel loved and accepted.If you'd like to resubmit your post, we would be more than happy to take a look at it. In the meantime, if you need any help or have any questions, please don't hesitate to [reach out to us](/contact). We're always here to help. Have a blessed day!", + "Hi @{username}, We're sorry to say that your {type} has been automatically removed because you forgot to include the phrase `{CHUD_PHRASE}`. Here at our church, we strongly believe that `{CHUD_PHRASE}` and we want to make sure that all of our members feel loved and accepted. If you'd like to resubmit your post, we would be more than happy to take a look at it. In the meantime, if you need any help or have any questions, please don't hesitate to [reach out to us](/contact). We're always here to help. Have a blessed day!", - "Yo, Ya {type} got automatically removed cuz ya forgot ta include `{CHUD_PHRASE}`. Don't worry, we gotchu! We ain't gonna letcha post or comment nuttin' that don't express ya love and acceptance towards the trans community. Feel free ta resubmit ya comment with `{CHUD_PHRASE}` included. This is an automated message; if ya need help, ya can message us [here](/contact).", + "Yo, Ya {type} got automatically removed cuz ya forgot ta include `{CHUD_PHRASE}`. Don't worry, we gotchu! We ain't gonna letcha post or comment nuttin' that don't express ya love and acceptance towards minorities. Feel free ta resubmit ya comment with `{CHUD_PHRASE}` included. This is an automated message; if ya need help, ya can message us [here](/contact).", "omg hi @{username}!!! okay so this is like super awkward omg but basically i had to remove ur {type} bc u didnt say `{CHUD_PHRASE}` lol. don't worry though, we like wont let you post anything that like doesnt have `{CHUD_PHRASE}` in it. anyways im like just a robot 😲 but if u want to talk 2 somebody you should do it [here](/contact) lol", @@ -362,7 +362,6 @@ PERMS = { # Minimum admin_level to perform action. 'NOTIFICATIONS_FROM_SHADOWBANNED_USERS': 3, 'APPS_MODERATION': 3, 'USE_ADMIGGER_THREADS': 3, - 'IGNORE_AWARD_IMMUNITY': 3, 'MODERATE_PENDING_SUBMITTED_ASSETS': 3, 'UPDATE_ASSETS': 3, 'DELETE_MEDIA': 3, @@ -383,6 +382,8 @@ PERMS = { # Minimum admin_level to perform action. 'IGNORE_DOMAIN_BAN': 4, 'USER_RESET_PASSWORD': 4, 'CLAIM_REWARDS_ALL_USERS': 4, + 'IGNORE_AWARD_IMMUNITY': 4, + 'INSERT_TRANSACTION': 4, } FEATURES = { @@ -403,7 +404,8 @@ FEATURES = { 'MARKUP_COMMANDS': True, 'REPOST_DETECTION': True, 'PATRON_ICONS': False, - 'ASSET_SUBMISSIONS': False, + 'EMOJI_SUBMISSIONS': True, + 'HAT_SUBMISSIONS': True, 'NSFW_MARKING': True, 'PING_GROUPS': True, 'BOTS': True, @@ -585,16 +587,6 @@ TIER_TO_MONEY = { 8: 500, } -TIER_TO_MBUX = { - 2: 2500, - 3: 5000, - 4: 10000, - 5: 25000, - 6: 50000, - 7: 100000, - 8: 250000, -} - BADGE_BLACKLIST = { # only grantable by admins higher than PERMS['IGNORE_BADGE_BLACKLIST'] 1, 2, 6, 10, 11, 12, # Alpha, Verified Email, Beta, Recruiter x3 16, 17, 143, 21, 22, 23, 24, 25, 26, 27, # Marsey Artist x3 / Patron Tiers @@ -613,7 +605,6 @@ if SITE in {'rdrama.net', 'staging.rdrama.net'}: FEATURES['PRONOUNS'] = True FEATURES['HOUSES'] = True FEATURES['USERS_PERMANENT_WORD_FILTERS'] = True - FEATURES['ASSET_SUBMISSIONS'] = True BUG_THREAD = 18459 @@ -629,7 +620,7 @@ if SITE in {'rdrama.net', 'staging.rdrama.net'}: HOLE_COST = 50000 HOLE_INACTIVITY_DELETION = True - BOT_SYMBOL_HIDDEN = (12125,16049) + BOT_SYMBOL_HIDDEN = (12125,16049,23576) EXEMPT_FROM_1WEEK_EDITING_LIMIT = {1048} AUTOJANNY_ID = 1046 @@ -701,6 +692,7 @@ elif SITE == 'watchpeopledie.tv': FEATURES['PATRON_ICONS'] = True FEATURES['NSFW_MARKING'] = False FEATURES['BOTS'] = False + FEATURES['HAT_SUBMISSIONS'] = False PERMS['POST_COMMENT_EDITING'] = 3 PERMS['MODS_EVERY_HOLE'] = 3 @@ -787,14 +779,12 @@ elif SITE == 'watchpeopledie.tv': elif SITE == 'devrama.net': AEVANN_ID = 7 - FEATURES['ASSET_SUBMISSIONS'] = True FEATURES['PRONOUNS'] = True FEATURES['HOUSES'] = True FEATURES['USERS_PERMANENT_WORD_FILTERS'] = True PERMS["SITE_SETTINGS"] = 4 PERMS["ORGIES"] = 4 else: # localhost or testing environment implied - FEATURES['ASSET_SUBMISSIONS'] = True FEATURES['PRONOUNS'] = True FEATURES['HOUSES'] = True FEATURES['USERS_PERMANENT_WORD_FILTERS'] = True @@ -882,6 +872,8 @@ approved_embed_hosts = [ 'external-preview.redd.it', 'pbs.twimg.com/media', 'i.pinimg.com', + 'kiwifarms.net/attachments', + 'uploads.kiwifarms.net/data/attachments', 'kiwifarms.st/attachments', 'uploads.kiwifarms.st/data/attachments', 'upload.wikimedia.org/wikipedia', @@ -925,7 +917,7 @@ forced_hats = { "progressivestack": ("Attention Whore", "I won the oppression olympics!"), "longpost": ("The Pizzashill", "We need to get rid of the character limit!"), "bird": ("Bluecheck", "Three sentences is too much for me..."), - "marseyawarded": ("Three Lil Marseys", ":marseynotes: :marseynotes: :I prefer to speak in cats:"), + "hieroglyphs": ("Three Lil Marseys", ":marseynotes: :marseynotes: :I prefer to speak in cats:"), "bite": ("Vampire Mask", "When other little girls wanted to be ballet dancers I kind of wanted to be a vampire."), "rainbow": ("Globohomo", "Homosexuality is no longer optional!"), "owoify": ("Cat Ears (wiggly)", "Nuzzles, pounces on you, UwU, you're so warm!.."), @@ -977,15 +969,21 @@ EMOJI_KINDS = ("Marsey", "Platy", "Wolf", "Donkey Kong", "Tay", "Capy", "Carp", t = datetime.datetime.now() -fistmas_begin = datetime.datetime.strptime(f'1/12/{t.year}', '%d/%m/%Y') +if SITE_NAME == 'rDrama': + fistmas_begin = datetime.datetime.strptime(f'1/12/{t.year}', '%d/%m/%Y') +else: + fistmas_begin = datetime.datetime.strptime(f'21/12/{t.year}', '%d/%m/%Y') fistmas_end = datetime.datetime.strptime(f'26/12/{t.year}', '%d/%m/%Y') def IS_FISTMAS(): return fistmas_begin < datetime.datetime.now() < fistmas_end -homoween_begin = datetime.datetime.strptime(f'10/10/{t.year}', '%d/%m/%Y') +if SITE_NAME == 'rDrama': + homoween_begin = datetime.datetime.strptime(f'9/10/{t.year}', '%d/%m/%Y') +else: + homoween_begin = datetime.datetime.strptime(f'27/10/{t.year}', '%d/%m/%Y') homoween_end = datetime.datetime.strptime(f'1/11/{t.year}', '%d/%m/%Y') def IS_HOMOWEEN(): - return SITE == 'devrama.net' or homoween_begin < datetime.datetime.now() < homoween_end + return homoween_begin < datetime.datetime.now() < homoween_end dkd_begin = datetime.datetime.strptime(f'25/4/{t.year}', '%d/%m/%Y') dkd_end = datetime.datetime.strptime(f'2/5/{t.year}', '%d/%m/%Y') @@ -1034,6 +1032,8 @@ CHUD_PHRASES = ( "Long live the CCP", "I stand with Ukraine", "Leo Frank was innocent", + "Israeli lives matter", + "Palestinian lives matter", ) HEADERS = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36"} @@ -1081,7 +1081,7 @@ engine = create_engine(environ.get("DATABASE_URL").strip(), connect_args={"optio db_session = scoped_session(sessionmaker(bind=engine, autoflush=False)) approved_embed_hosts_for_csp = ' '.join(set([x.split('/')[0] for x in approved_embed_hosts])) -csp = f"default-src 'none'; frame-ancestors 'none'; form-action 'self'; manifest-src 'self'; worker-src 'self'; base-uri 'self'; font-src 'self'; style-src-elem 'self'; style-src-attr 'unsafe-inline'; style-src 'self' 'unsafe-inline'; script-src-elem 'self' challenges.cloudflare.com; script-src-attr 'none'; script-src 'self' challenges.cloudflare.com; frame-src challenges.cloudflare.com www.youtube.com platform.twitter.com rumble.com player.twitch.tv; connect-src 'self' videos.watchpeopledie.tv use1.fptls.com use1.fptls3.com api.fpjs.io; img-src {approved_embed_hosts_for_csp} data:; media-src {approved_embed_hosts_for_csp};" +csp = f"default-src 'none'; frame-ancestors 'none'; form-action 'self'; manifest-src 'self'; worker-src 'self'; base-uri 'self'; font-src 'self'; style-src-elem 'self'; style-src-attr 'unsafe-inline'; style-src 'self' 'unsafe-inline'; script-src-elem 'self' challenges.cloudflare.com; script-src-attr 'none'; script-src 'self' challenges.cloudflare.com; frame-src challenges.cloudflare.com cdpn.io platform.twitter.com rumble.com player.twitch.tv; connect-src 'self' videos.watchpeopledie.tv use1.fptls.com use1.fptls3.com api.fpjs.io; img-src {approved_embed_hosts_for_csp} data:; media-src {approved_embed_hosts_for_csp};" if not IS_LOCALHOST: csp += ' upgrade-insecure-requests;' diff --git a/files/helpers/config/modaction_types.py b/files/helpers/config/modaction_types.py index 0acaa8e34..8045293ac 100644 --- a/files/helpers/config/modaction_types.py +++ b/files/helpers/config/modaction_types.py @@ -181,6 +181,11 @@ MODACTION_TYPES = { "icon": 'fa-tag', "color": 'bg-primary' }, + 'insert_transaction': { + "str": 'Inserted transaction made by {self.target_link}', + "icon": 'fa-dollar-sign', + "color": 'bg-success' + }, 'link_accounts': { "str": 'linked {self.target_link}', "icon": 'fa-link', @@ -306,12 +311,12 @@ MODACTION_TYPES = { "icon": 'fa-eye-slash', "color": 'bg-danger' }, - 'start_orgy': { + 'schedule_orgy': { "str": 'started orgy', "icon": 'fa-tv', "color": 'bg-success' }, - 'stop_orgy': { + 'remove_orgy': { "str": 'stopped orgy', "icon": 'fa-tv', "color": 'bg-danger' @@ -435,6 +440,8 @@ MODACTION_PRIVILEGED_TYPES = { 'link_accounts', 'delink_accounts', 'enable_login_required', 'reset_password', + 'schedule_orgy', 'remove_orgy', + 'insert_transaction', } MODACTION_PRIVILEGED__TYPES = {'progstack_post', 'progstack_comment', 'unprogstack_post', 'unprogstack_comment'} diff --git a/files/helpers/cron.py b/files/helpers/cron.py index beb164dac..1b8ed146f 100644 --- a/files/helpers/cron.py +++ b/files/helpers/cron.py @@ -29,7 +29,7 @@ from files.cli import app, db_session, g CRON_CACHE_TIMEOUT = 172800 -def cron_fn(every_5m, every_1d, every_fri_12, every_fri_23, every_sat_00, every_sat_03, every_sun_07, every_sun_19, every_sun_20, every_sun_23, every_1mo): +def cron_fn(every_5m, every_1d, every_fri_12, every_fri_23, every_sat_03, every_sun_07, every_sun_19, every_sun_23, every_1mo): with app.app_context(): g.db = db_session() g.v = None @@ -60,16 +60,20 @@ def cron_fn(every_5m, every_1d, every_fri_12, every_fri_23, every_sat_00, every_ g.db.commit() if every_1d or (not cache.get('stats') and not IS_LOCALHOST): + if IS_HOMOWEEN(): + g.db.execute(text( + "INSERT INTO award_relationships (user_id, kind, created_utc) " + f"SELECT id, 'bite', {int(time.time())} FROM users " + "WHERE users.zombie < 0")) + g.db.commit() + _generate_emojis_zip() g.db.commit() - if FEATURES['ASSET_SUBMISSIONS']: + if FEATURES['EMOJI_SUBMISSIONS']: _generate_emojis_original_zip() g.db.commit() - _leaderboard_task() - g.db.commit() - _hole_inactive_purge_task() g.db.commit() @@ -79,33 +83,25 @@ def cron_fn(every_5m, every_1d, every_fri_12, every_fri_23, every_sat_00, every_ cache.set('stats', stats.stats(), timeout=CRON_CACHE_TIMEOUT) g.db.commit() - if IS_HOMOWEEN(): - g.db.execute(text( - "INSERT INTO award_relationships (user_id, kind, created_utc) " - f"SELECT id, 'bite', {int(time.time())} FROM users " - "WHERE users.zombie < 0")) - g.db.commit() - + _leaderboard_task() + g.db.commit() if every_fri_12: - _create_post(f'Movie Night', f'''Our Movie Night today will show `{get_name()}`.\nThe movies will start at 8 PM EST. [Here is a timezone converter for whoever needs it.](https://dateful.com/time-zone-converter?t=8pm&tz1=EST-EDT-Eastern-Time). You can also check this [countdown timer](https://www.tickcounter.com/countdown/4435809/movie-night) instead.\nThey will be shown [here](/chat).\nThere will be a 5-minute bathroom break at the 50:00 mark.\nRerun will be Sunday 4 PM EST.''', 11) + _create_post(f'Movie Night', f'''Our Movie Night today will show `{get_names()}`.\nThe movies will start at 8 PM EST. [Here is a timezone converter for whoever needs it.](https://dateful.com/time-zone-converter?t=8pm&tz1=EST-EDT-Eastern-Time). You can also check this [countdown timer](https://www.tickcounter.com/countdown/4435809/movie-night) instead.\nThey will be shown [here](/chat).\nThere will be a 5-minute bathroom break at the 50:00 mark of each movie.\nRerun will be Sunday 4 PM EST.''', 11) g.db.commit() if every_fri_23: - _create_post(f'Movie Night in 60 minutes', 'It will be shown [here](/chat).\nThere will be a 5-minute bathroom break at the 50:00 mark.\nRerun will be Sunday 4 PM EST.', 1) + _create_post(f'Movie Night in 60 minutes', 'It will be shown [here](/chat).\nThere will be a 5-minute bathroom break at the 50:00 mark of each movie.\nRerun will be Sunday 4 PM EST.', 1) g.db.commit() if every_sun_07: - _create_post(f'Movie Night Rerun', f'''Our Movie Night Rerun today will show `{get_name()}`.\nThe movies will start at 4 PM EST. [Here is a timezone converter for whoever needs it.](https://dateful.com/time-zone-converter?t=4pm&tz1=EST-EDT-Eastern-Time). You can also check this [countdown timer](https://www.tickcounter.com/countdown/4465675/movie-night-rerun) instead.\nThey will be shown [here](/chat).\nThere will be a 5-minute bathroom break at the 50:00 mark.''', 1) + _create_post(f'Movie Night Rerun', f'''Our Movie Night Rerun today will show `{get_names()}`.\nThe movies will start at 4 PM EST. [Here is a timezone converter for whoever needs it.](https://dateful.com/time-zone-converter?t=4pm&tz1=EST-EDT-Eastern-Time). You can also check this [countdown timer](https://www.tickcounter.com/countdown/4465675/movie-night-rerun) instead.\nThey will be shown [here](/chat).\nThere will be a 5-minute bathroom break at the 50:00 mark of each movie.''', 11) g.db.commit() if every_sun_19: - _create_post(f'Movie Night Rerun in 60 minutes', 'It will be shown [here](/chat).\nThere will be a 5-minute bathroom break at the 50:00 mark.', 1) + _create_post(f'Movie Night Rerun in 60 minutes', 'It will be shown [here](/chat).\nThere will be a 5-minute bathroom break at the 50:00 mark of each movie.', 1) g.db.commit() - if every_sat_00 or every_sun_20: - _create_and_delete_orgy() - if every_sat_03 or every_sun_23: _delete_all_posts() g.db.commit() @@ -130,26 +126,21 @@ def cron_fn(every_5m, every_1d, every_fri_12, every_fri_23, every_sat_00, every_ @click.option('--every-1d', is_flag=True, help='Call every 1 day.') @click.option('--every-fri-12', is_flag=True, help='Call every Friday.') @click.option('--every-fri-23', is_flag=True, help='Call every Friday.') -@click.option('--every-sat-00', is_flag=True, help='Call every Saturday.') @click.option('--every-sat-03', is_flag=True, help='Call every Saturday.') @click.option('--every-sun-07', is_flag=True, help='Call every Sunday.') @click.option('--every-sun-19', is_flag=True, help='Call every Sunday.') -@click.option('--every-sun-20', is_flag=True, help='Call every Sunday.') @click.option('--every-sun-23', is_flag=True, help='Call every Sunday.') @click.option('--every-1mo', is_flag=True, help='Call every 1 month.') def cron(**kwargs): cron_fn(**kwargs) -def get_file(): - return max(glob.glob('/orgies/*'), key=os.path.getctime).split('/orgies/')[1] - -def get_name(): - return get_file().split('.')[0] +def get_names(): + return ' and '.join([x[0] for x in g.db.query(Orgy.title).filter_by(type='file').order_by(Orgy.start_utc).limit(2)]) def _create_post(title, body, pin_hours): _delete_all_posts() - title += f': {get_name()}' + title += f': {get_names()}' title_html = filter_emojis_only(title) body_html = sanitize(body) @@ -182,28 +173,13 @@ def _create_post(title, body, pin_hours): ) g.db.add(p) + if AEVANN_ID: + g.db.flush() + new_sub = Subscription(user_id=AEVANN_ID, post_id=p.id) + g.db.add(new_sub) + cache.delete_memoized(frontlist) -def _create_and_delete_orgy(): - video_info = ffmpeg.probe(f'/orgies/{get_file()}') - seconds = float(video_info['streams'][0]['duration']) - end_utc = int(time.time() + seconds) - - orgy = Orgy( - title=get_name(), - type='file', - data=f'https://videos.watchpeopledie.tv/orgies/{get_file()}', - end_utc = end_utc, - ) - g.db.add(orgy) - g.db.commit() - g.db.close() - del g.db - stdout.flush() - - requests.post('http://localhost:5001/refresh_chat', headers={"Host": SITE}) - - def _delete_all_posts(): posts = g.db.query(Post).filter_by(author_id=AUTOJANNY_ID, deleted_utc=0).all() for p in posts: @@ -392,7 +368,7 @@ def _award_timers_task(): _process_timer(User.progressivestack, [94], "The progressive stack award you received has expired!") _process_timer(User.bird, [95], "The bird site award you received has expired!") _process_timer(User.longpost, [97], "The pizzashill award you received has expired!") - _process_timer(User.marseyawarded, [98], "The hieroglyphs award you received has expired!") + _process_timer(User.hieroglyphs, [98], "The hieroglyphs award you received has expired!") _process_timer(User.rehab, [109], "The rehab award you received has expired!") _process_timer(User.owoify, [167], "The OwOify award you received has expired!") _process_timer(User.sharpen, [289], "The Sharpen award you received has expired!") diff --git a/files/helpers/get.py b/files/helpers/get.py index 459bf5cfd..f7d1d76f0 100644 --- a/files/helpers/get.py +++ b/files/helpers/get.py @@ -21,8 +21,8 @@ def get_user(username, v=None, graceful=False, include_blocks=False, attributes= if graceful: return None abort(400, "Empty username.") - username = sanitize_username(username) - if not username: + search_name = sanitize_username(username) + if not search_name: if graceful: return None abort(400, "Empty username.") @@ -30,9 +30,9 @@ def get_user(username, v=None, graceful=False, include_blocks=False, attributes= User ).filter( or_( - User.username.ilike(username), - User.original_username.ilike(username), - User.prelock_username.ilike(username), + User.username.ilike(search_name), + User.original_username.ilike(search_name), + User.prelock_username.ilike(search_name), ) ) diff --git a/files/helpers/marsify.py b/files/helpers/marsify.py index 346c0ec48..5f596455d 100644 --- a/files/helpers/marsify.py +++ b/files/helpers/marsify.py @@ -2,14 +2,18 @@ from random import choice from .const_stateful import MARSEY_MAPPINGS -def marsify(text): + +def marsify(text, chud_phrase): if '`' in text or '
    ' in text or '' in text:
     		return text
     
    +	chud_words = chud_phrase.split() if chud_phrase else []
    +
     	new_text = ''
     	for x in text.split(' '):
     		new_text += f'{x} '
     		x = x.lower()
    +		if x in chud_words: continue
     		if len(x) >= 5 and x in MARSEY_MAPPINGS:
     			marsey = choice(MARSEY_MAPPINGS[x])
     			new_text += f':{marsey}: '
    diff --git a/files/helpers/media.py b/files/helpers/media.py
    index 5205447de..9e68ba269 100644
    --- a/files/helpers/media.py
    +++ b/files/helpers/media.py
    @@ -143,7 +143,11 @@ def process_video(file, v):
     
     	new = f'{old}.mp4'
     
    -	codec = ffmpeg.probe(old)['streams'][0]['codec_name']
    +	try:
    +		codec = ffmpeg.probe(old)['streams'][0]['codec_name']
    +	except:
    +		os.remove(old)
    +		abort(400, "Something went wrong processing your video and it might be on our end. Please try uploading it to https://pomf2.lain.la and post the link instead.")
     
     	if codec != 'h264':
     		copyfile(old, new)
    @@ -167,6 +171,9 @@ def process_video(file, v):
     	)
     	g.db.add(media)
     
    +	if SITE == 'watchpeopledie.tv' and v and v.username.lower().startswith("icosaka"):
    +		gevent.spawn(delete_file, new, f'https://videos.{SITE}' + new.split('/videos')[1])
    +
     	if SITE == 'watchpeopledie.tv':
     		return f'https://videos.{SITE}' + new.split('/videos')[1]
     	else:
    @@ -211,8 +218,7 @@ def process_image(filename, v, resize=0, trim=False, uploader_id=None):
     	except:
     		os.remove(filename)
     		if has_request:
    -			abort(400, ("An uploaded image couldn't be converted to WEBP. "
    -						"Please convert it to WEBP elsewhere then upload it again."))
    +			abort(400, "An uploaded image couldn't be converted to WEBP. Please convert it to WEBP elsewhere then upload it again.")
     		return None
     
     	size_after_conversion = os.stat(filename).st_size
    @@ -260,11 +266,11 @@ def process_image(filename, v, resize=0, trim=False, uploader_id=None):
     	g.db.add(media)
     
     	if SITE == 'watchpeopledie.tv' and v and "dylan" in v.username.lower() and "hewitt" in v.username.lower():
    -		gevent.spawn(delete_file, filename)
    +		gevent.spawn(delete_file, filename, f'{SITE_FULL_IMAGES}{filename}')
     
     	return f'{SITE_FULL_IMAGES}{filename}'
     
    -def delete_file(filename):
    +def delete_file(filename, url):
     	time.sleep(60)
     	os.remove(filename)
    -	purge_files_in_cloudflare_cache(f'{SITE_FULL_IMAGES}{filename}')
    +	purge_files_in_cloudflare_cache(url)
    diff --git a/files/helpers/offsitementions.py b/files/helpers/offsitementions.py
    index 42f477a05..a6ca65f1d 100644
    --- a/files/helpers/offsitementions.py
    +++ b/files/helpers/offsitementions.py
    @@ -34,7 +34,7 @@ def get_mentions(cache, queries, reddit_notifs_users=False):
     	for kind in ('submission', 'comment'):
     		q = " or ".join(queries)
     		url = f'https://api.pullpush.io/reddit/search/{kind}?q={q}'
    -		try: req = requests.get(url, headers=HEADERS, timeout=5, proxies=proxies)
    +		try: req = requests.get(url, headers=HEADERS, timeout=5)
     		except: return []
     		data = req.json()['data']
     
    diff --git a/files/helpers/owoify.py b/files/helpers/owoify.py
    index 3c763c618..d3be0cb54 100644
    --- a/files/helpers/owoify.py
    +++ b/files/helpers/owoify.py
    @@ -22,7 +22,7 @@ OWO_EXCLUDE_PATTERNS = [
     	command_regex, # markup commands
     ]
     
    -def owoify(source):
    +def owoify(source, chud_phrase):
     	if '`' in source or '
    ' in source or '' in source:
     		return source
     
    @@ -32,13 +32,18 @@ def owoify(source):
     	words = [Word(s) for s in word_matches]
     	spaces = [Word(s) for s in space_matches]
     
    -	words = list(map(lambda w: owoify_map_token_custom(w), words))
    +	chud_words = chud_phrase.split() if chud_phrase else []
    +
    +	words = list(map(lambda w: owoify_map_token_custom(w, chud_words), words))
     
     	result = interleave_arrays(words, spaces)
     	result_strings = list(map(lambda w: str(w), result))
     	return ''.join(result_strings)
     
    -def owoify_map_token_custom(token):
    +def owoify_map_token_custom(token, chud_words):
    +	if token.word in chud_words:
    +		return token
    +
     	for pattern in OWO_EXCLUDE_PATTERNS:
     		# if pattern appears anywhere in token, do not owoify.
     		if pattern.search(token.word):
    diff --git a/files/helpers/regex.py b/files/helpers/regex.py
    index 8bfa16763..e1f1e4229 100644
    --- a/files/helpers/regex.py
    +++ b/files/helpers/regex.py
    @@ -23,7 +23,7 @@ marseyaward_title_regex = re.compile("( *]+>)+", flags=re.A)
     
     emoji_name_regex = re.compile("[a-z0-9]{1,30}", flags=re.A)
     tags_regex = re.compile("[a-z0-9: ]{1,200}", flags=re.A)
    -hat_regex = re.compile("[\w\-() ,]{1,50}", flags=re.A)
    +hat_name_regex = re.compile("[\w\-() ,]{1,50}", flags=re.A)
     description_regex = re.compile("[^<>&\n\t]{1,300}", flags=re.A)
     
     badge_name_regex = re.compile(r"[^\/.]+", flags=re.A)
    @@ -32,9 +32,9 @@ hole_group_name_regex = re.compile("^[\w-]{3,25}$", flags=re.A)
     
     query_regex = re.compile("(\w+):(\S+)", flags=re.A)
     
    -poll_regex = re.compile("(^|\n|>)\$\$([^\$\n]+)\$\$\s*?" + NOT_IN_CODE_OR_LINKS, flags=re.A)
    -bet_regex = re.compile("(^|\n|>)##([^#\n]+)##\s*?" + NOT_IN_CODE_OR_LINKS, flags=re.A)
    -choice_regex = re.compile("(^|\n|>)&&([^&\n]+)&&\s*?" + NOT_IN_CODE_OR_LINKS, flags=re.A)
    +poll_regex = re.compile("(^|\n|>)\$\$([^\n]+?)\$\$\s*?" + NOT_IN_CODE_OR_LINKS, flags=re.A)
    +bet_regex = re.compile("(^|\n|>)##([^\n]+?)##\s*?" + NOT_IN_CODE_OR_LINKS, flags=re.A)
    +choice_regex = re.compile("(^|\n|>)&&([^\n]+?)&&\s*?" + NOT_IN_CODE_OR_LINKS, flags=re.A)
     
     html_comment_regex = re.compile("", flags=re.A)
     
    @@ -108,7 +108,7 @@ image_regex_extensions = '|'.join(IMAGE_FORMATS)
     image_sub_regex = re.compile(f'(?|")https:\/\/old.reddit.com\/([ru])\/', flags=re.A)
    diff --git a/files/helpers/sanitize.py b/files/helpers/sanitize.py
    index 1f0a7c2b7..626b0605e 100644
    --- a/files/helpers/sanitize.py
    +++ b/files/helpers/sanitize.py
    @@ -171,9 +171,6 @@ def execute_blackjack(v, target, body, kind):
     def find_all_emoji_endings(emoji):
     	endings = []
     
    -	if path.isfile(f'files/assets/images/emojis/{emoji}.webp'):
    -		return endings, emoji
    -
     	is_non_ending_found = False
     	while not is_non_ending_found:
     		if emoji.endswith('pat'):
    @@ -352,7 +349,8 @@ def handle_youtube_links(url):
     			split = t.split('m')
     			if len(split) == 2:
     				minutes = int(split[0])
    -				seconds = int(split[1])
    +				if split[1]: seconds = int(split[1])
    +				else: seconds = 0
     				t = minutes*60 + seconds
     		html = f'!{name}'
    @@ -446,8 +446,8 @@ def sanitize(sanitized, golden=True, limit_pings=0, showmore=False, count_emojis
     				return f'!{name}'
     			elif name == 'followers':
     				return f'!{name}'
    -			elif g.db.get(Group, name):
    -				return f'!{name}'
    +			elif g.db.get(Group, name.lower()):
    +				return f'!{name}'
     			else:
     				return m.group(0)
     
    @@ -456,9 +456,6 @@ def sanitize(sanitized, golden=True, limit_pings=0, showmore=False, count_emojis
     
     	soup = BeautifulSoup(sanitized, 'lxml')
     
    -	if len(soup.select('[bounce], [cide]')) > 5:
    -		error("Max 5 usages of 'bounce' and 'cide'!")
    -
     	for tag in soup.find_all("img"):
     		if tag.get("src") and not tag["src"].startswith('/pp/') and not (snappy and tag["src"].startswith(f'{SITE_FULL_IMAGES}/e/')):
     			if not is_safe_url(tag["src"]):
    @@ -605,7 +602,7 @@ def sanitize(sanitized, golden=True, limit_pings=0, showmore=False, count_emojis
     			continue
     
     		#don't allow something like this [https://rԁrama.net/leaderboard](https://iplogger.org/1fRKk7)
    -		if not snappy and not post_mention_notif:
    +		if not snappy:
     			string_domain = tldextract.extract(str(link.string)).registered_domain
     			if string_domain and string_domain != tldextract.extract(href).registered_domain:
     				link.string = href
    @@ -679,13 +676,14 @@ def filter_emojis_only(title, golden=True, count_emojis=False, obj=None, author=
     
     	title = remove_cuniform(title)
     
    -	if obj and not (isinstance(obj, Post) and len(obj.body) > 1000):
    +	if obj and not obj.is_effortpost:
     		if author.owoify:
    -			title = owoify(title)
    -		if author.marsify and not author.chud:
    -			title = marsify(title)
    -		if obj.sharpened:
    -			title = sharpen(title)
    +			title = owoify(title, author.chud_phrase)
    +		if author.marsify:
    +			title = marsify(title, author.chud_phrase)
    +
    +	if obj and obj.sharpened:
    +		title = sharpen(title)
     
     	emojis_used = set()
     
    @@ -718,7 +716,7 @@ def is_whitelisted(domain, k):
     		return True
     	if 'sort' in k.lower() or 'query' in k.lower():
     		return True
    -	if k in {'_x_tr_hl','_x_tr_pto','_x_tr_sl','_x_tr_tl','abstract_id','after','article','bill_id','c','clip','comments','context','count','f','fbid','format','forum_id','i','ID','id','lb','list','oldid','p','page','post_id','postid','q','run','scrollToComments','search','sl','sp','story_fbid','tab','term','text','thread_id','threadid','ticket_form_id','time_continue','title','title_no','tl','token','topic','type','tz1','tz2','u','udca','url','v','vid','viewkey'}:
    +	if k in {'_x_tr_hl','_x_tr_pto','_x_tr_sl','_x_tr_tl','abstract_id','after','article','bill_id','c','clip','commentID','comments','context','count','f','fbid','format','forum_id','i','ID','id','lb','list','oldid','p','page','post_id','postid','q','run','scrollToComments','search','sl','sp','story_fbid','tab','term','text','thread_id','threadid','ticket_form_id','time_continue','title','title_no','tl','token','topic','type','tz1','tz2','u','udca','url','v','vid','viewkey'}:
     		return True
     	if k == 't' and domain != 'twitter.com':
     		return True
    @@ -732,7 +730,7 @@ def normalize_url(url):
     
     	url = url.replace("reddit.com/user/", "reddit.com/u/")
     
    -	url = reddit_domain_regex.sub(r'\1https://old.reddit.com/\3', url)
    +	url = reddit_domain_regex.sub(r'\1https://old.reddit.com/\5', url)
     
     	url = url.replace("https://music.youtube.com/watch?v=", "https://youtube.com/watch?v=") \
     			 .replace("https://www.youtube.com", "https://youtube.com") \
    @@ -802,8 +800,7 @@ def normalize_url(url):
     	return url
     
     def normalize_url_gevent(url):
    -	try: url = requests.get(url, headers=HEADERS, timeout=2, proxies=proxies).url
    -	except: return url
    +	url = requests.get(url, headers=HEADERS, timeout=2).url
     	return normalize_url(url)
     
     def validate_css(css):
    @@ -833,7 +830,7 @@ def torture_chud(string, username):
     def complies_with_chud(obj):
     	#check for cases where u should leave
     	if not obj.chudded: return True
    -	if obj.author.marseyawarded: return True
    +	if obj.author.hieroglyphs: return True
     
     	if isinstance(obj, Post):
     		if obj.id in ADMIGGER_THREADS: return True
    diff --git a/files/helpers/settings.py b/files/helpers/settings.py
    index d37141914..4cba057b8 100644
    --- a/files/helpers/settings.py
    +++ b/files/helpers/settings.py
    @@ -31,6 +31,10 @@ def toggle_setting(setting):
     	_save_settings()
     	return val
     
    +def set_setting(setting, val):
    +	_SETTINGS[setting] = val
    +	_save_settings()
    +
     def reload_settings():
     	global _SETTINGS
     	if not os.path.isfile(SETTINGS_FILENAME):
    diff --git a/files/helpers/slurs_and_profanities.py b/files/helpers/slurs_and_profanities.py
    index d994c4ffd..5143a27e8 100644
    --- a/files/helpers/slurs_and_profanities.py
    +++ b/files/helpers/slurs_and_profanities.py
    @@ -26,7 +26,8 @@ SLURS = {
     	"daisy destruction": "Cars 2",
     	"pajeet": "sexy Indian dude",
     	"hunter2": "*******",
    -	"dyke": "cute butch",
    +	"dyke(?!\w)": "cute butch",
    +	"dykes": "cute butches",
     }
     
     if SITE_NAME == 'rDrama':
    @@ -77,7 +78,7 @@ if SITE_NAME == 'rDrama':
     		"right now": "right meow",
     		"(? {new_badge.description}'
    +			if new_badge.url:
    +				text += f'\n\n> {new_badge.url}'
     			send_repeatable_notification(user.id, text)
     
    +		note = new_badge.name
    +		if new_badge.description:
    +			note += f' - {new_badge.description}'
    +		if new_badge.url:
    +			note += f' - {new_badge.url}'
    +
     		ma = ModAction(
     			kind="badge_grant",
     			user_id=v.id,
     			target_user_id=user.id,
    -			_note=new_badge.name
    +			_note=note,
     		)
     		g.db.add(ma)
     
    @@ -808,7 +818,7 @@ def unchud(fullname, v):
     		user = get_account(fullname)
     
     	if not user.chudded_by:
    -		abort(403, "Jannies can't undo chud awards anymore!")
    +		abort(403, "Jannies can't undo chud awards!")
     
     	user.chud = 0
     	user.chud_phrase = None
    @@ -907,7 +917,7 @@ def admin_change_flair(user_id, v):
     
     	user = get_account(user_id)
     
    -	new_flair = request.values.get("title")[:256].strip()
    +	new_flair = request.values.get("flair")[:256].strip()
     
     	user.flair = new_flair
     	new_flair = filter_emojis_only(new_flair)
    @@ -1904,6 +1914,13 @@ def delete_media_post(v):
     
     	os.remove(path)
     
    +	to_delete = g.db.query(Post.thumburl, Post.posterurl).filter_by(url=url).all()
    +	for tup in to_delete:
    +		for url in tup:
    +			if url:
    +				remove_media_using_link(url)
    +				purge_files_in_cloudflare_cache(url)
    +
     	ma = ModAction(
     		kind="delete_media",
     		user_id=v.id,
    @@ -1939,17 +1956,18 @@ def admin_reset_password(user_id, v):
     
     	return {"message": f"@{user.username}'s password has been reset! The new password has been messaged to them!"}
     
    -@app.get("/admin/orgy")
    +@app.get("/admin/orgies")
     @admin_level_required(PERMS['ORGIES'])
     def orgy_control(v):
    -	orgy = g.db.query(Orgy).one_or_none()
    -	return render_template("admin/orgy_control.html", v=v, orgy=orgy)
    +	orgies = g.db.query(Orgy).order_by(Orgy.start_utc).all()
    +	return render_template("admin/orgy_control.html", v=v, orgies=orgies)
     
    -@app.post("/admin/start_orgy")
    +@app.post("/admin/schedule_orgy")
     @admin_level_required(PERMS['ORGIES'])
    -def start_orgy(v):
    +def schedule_orgy(v):
     	link = request.values.get("link", "").strip()
     	title = request.values.get("title", "").strip()
    +	start_utc = request.values.get("start_utc", "").strip()
     
     	if not link:
     		abort(400, "A link is required!")
    @@ -1957,10 +1975,15 @@ def start_orgy(v):
     	if not title:
     		abort(400, "A title is required!")
     
    -	if get_orgy(v):
    -		abort(400, "An orgy is already in progress")
    -
     	normalized_link = normalize_url(link)
    +
    +	if start_utc:
    +		start_utc = int(start_utc)
    +		redir = '/admin/orgies'
    +	else:
    +		start_utc = int(time.time())
    +		redir = '/chat'
    +
     	end_utc = None
     
     	if bare_youtube_regex.match(normalized_link):
    @@ -1975,10 +1998,12 @@ def start_orgy(v):
     	elif any((normalized_link.lower().endswith(f'.{x}') for x in VIDEO_FORMATS)):
     		orgy_type = 'file'
     		data = normalized_link
    -		#not deduped, cuz cron checks local file, it can't check the url cuz of referrer restriction
    -		video_info = ffmpeg.probe(data)
    -		seconds = float(video_info['streams'][0]['duration'])
    -		end_utc = int(time.time() + seconds)
    +		video_info = ffmpeg.probe(data, headers=f'referer:{SITE_FULL}/chat')
    +		duration = float(video_info['streams'][0]['duration'])
    +		if duration == 2.0: raise
    +		if duration > 3000:
    +			duration += 300 #account for break
    +		end_utc = int(start_utc + duration)
     	else:
     		abort(400)
     
    @@ -1986,39 +2011,98 @@ def start_orgy(v):
     			title=title,
     			type=orgy_type,
     			data=data,
    +			start_utc=start_utc,
     			end_utc=end_utc,
     		)
     	g.db.add(orgy)
     
     	ma = ModAction(
    -		kind="start_orgy",
    +		kind="schedule_orgy",
     		user_id=v.id,
     		_note=data,
     	)
     	g.db.add(ma)
     
    -	g.db.commit()
    -	requests.post('http://localhost:5001/refresh_chat', headers={"Host": SITE})
    +	return redirect(redir)
     
    -	return redirect('/chat')
    -
    -@app.post("/admin/stop_orgy")
    +@app.post("/admin/remove_orgy/")
     @admin_level_required(PERMS['ORGIES'])
    -def stop_orgy(v):
    -	orgy = g.db.query(Orgy).one_or_none()
    -
    -	if not orgy:
    -		abort(400, "There is no orgy in progress right now!")
    +def remove_orgy(v, created_utc):
    +	orgy = g.db.query(Orgy).filter_by(created_utc=created_utc).one()
     
     	ma = ModAction(
    -		kind="stop_orgy",
    +		kind="remove_orgy",
     		user_id=v.id,
     		_note=orgy.data,
     	)
     	g.db.add(ma)
     
    +	started = orgy.started
     	g.db.delete(orgy)
    -
    -	requests.post('http://localhost:5001/refresh_chat', headers={"Host": SITE})
    +	g.db.commit()
    +	if started:
    +		requests.post('http://localhost:5001/refresh_chat', headers={"Host": SITE})
     
     	return {"message": "Orgy stopped successfully!"}
    +
    +@app.get("/admin/insert_transaction")
    +@limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400)
    +@limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400, key_func=get_ID)
    +@admin_level_required(PERMS['INSERT_TRANSACTION'])
    +def insert_transaction(v):
    +	return render_template("admin/insert_transaction.html", v=v)
    +
    +@app.post("/admin/insert_transaction")
    +@limiter.limit('1/second', scope=rpath)
    +@limiter.limit('1/second', scope=rpath, key_func=get_ID)
    +@limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400)
    +@limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400, key_func=get_ID)
    +@admin_level_required(PERMS['INSERT_TRANSACTION'])
    +def insert_transaction_post(v):
    +	type = request.values.get("type", "").strip()
    +	id = request.values.get("id", "").strip()
    +	amount = request.values.get("amount", "").strip()
    +	username = request.values.get("username", "").strip()
    +
    +	if type not in {'BTC', 'ETH'}:
    +		abort(400, "Invalid transaction currency!")
    +
    +	if not id:
    +		abort(400, "A transaction ID is required!")
    +
    +	if not amount:
    +		abort(400, "A transaction amount is required!")
    +
    +	if not username:
    +		abort(400, "A username is required!")
    +
    +	amount = int(amount)
    +
    +	existing = g.db.get(Transaction, id)
    +	if existing:
    +		abort(400, "This transaction is already registered!")
    +
    +	user = get_user(username)
    +
    +	if not user.email:
    +		abort(400, f"@{user.username} doesn't have an email tied to their account!")
    +
    +	transaction = Transaction(
    +		id=id,
    +		created_utc=time.time(),
    +		type=type,
    +		amount=amount,
    +		email=user.email,
    +	)
    +	g.db.add(transaction)
    +
    +	ma = ModAction(
    +		kind="insert_transaction",
    +		user_id=v.id,
    +		target_user_id=user.id,
    +		_note=f'Transaction ID: {id}',
    +	)
    +	g.db.add(ma)
    +
    +	claim_rewards_all_users()
    +	return {"message": "Transaction inserted successfully!"}
    diff --git a/files/routes/asset_submissions.py b/files/routes/asset_submissions.py
    index d09f3e006..78abd29b3 100644
    --- a/files/routes/asset_submissions.py
    +++ b/files/routes/asset_submissions.py
    @@ -15,10 +15,12 @@ from files.__main__ import app, cache, limiter
     ASSET_TYPES = (Emoji, HatDef)
     
     @app.get("/submit/marseys")
    +@feature_required('EMOJI_SUBMISSIONS')
     def submit_marseys_redirect():
     	return redirect("/submit/emojis")
     
     @app.get("/submit/emojis")
    +@feature_required('EMOJI_SUBMISSIONS')
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400)
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400, key_func=get_ID)
     @auth_required
    @@ -37,6 +39,7 @@ def submit_emojis(v):
     emoji_modifiers = ('pat', 'talking', 'genocide', 'love')
     
     @app.post("/submit/emojis")
    +@feature_required('EMOJI_SUBMISSIONS')
     @limiter.limit('1/second', scope=rpath)
     @limiter.limit('1/second', scope=rpath, key_func=get_ID)
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400)
    @@ -120,6 +123,7 @@ def verify_permissions_and_get_asset(cls, asset_type, v, name, make_lower=False)
     	return asset
     
     @app.post("/admin/approve/emoji/")
    +@feature_required('EMOJI_SUBMISSIONS')
     @limiter.limit('1/second', scope=rpath)
     @limiter.limit('1/second', scope=rpath, key_func=get_ID)
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400)
    @@ -188,23 +192,21 @@ def approve_emoji(v, name):
     			badge_grant(badge_id=113, user=author)
     		badge_grant(badge_id=112, user=author)
     
    -	cache.delete(f"emojis_{emoji.nsfw}")
    -	cache.delete(f"emoji_list_{emoji.kind}_{emoji.nsfw}")
    +	move(f"/asset_submissions/emojis/{emoji.name}.webp", f"files/assets/images/emojis/{emoji.name}.webp")
     
    -	purge_files_in_cloudflare_cache(f"{SITE_FULL_IMAGES}/e/{emoji.name}/webp")
    -
    -	move(f"/asset_submissions/emojis/{name}.webp", f"files/assets/images/emojis/{emoji.name}.webp")
    -
    -	highquality = f"/asset_submissions/emojis/{name}"
    +	highquality = f"/asset_submissions/emojis/{emoji.name}"
     	with Image.open(highquality) as i:
    -		new_path = f'/asset_submissions/emojis/original/{name}.{i.format.lower()}'
    +		new_path = f'/asset_submissions/emojis/original/{emoji.name}.{i.format.lower()}'
     	rename(highquality, new_path)
     
    -	author.pay_account('coins', 250)
    +	if 'pkmn' in emoji.tags: amount = 500
    +	else: amount = 250
    +
    +	author.pay_account('coins', amount)
     	g.db.add(author)
     
     	if v.id != author.id:
    -		msg = f"@{v.username} (a site admin) has approved an emoji you made: :{emoji.name}:\n\nYou have received 250 coins as a reward!"
    +		msg = f"@{v.username} (a site admin) has approved an emoji you made: :{emoji.name}:\n\nYou have received {amount} coins as a reward!"
     
     		comment = request.values.get("comment")
     		if comment:
    @@ -226,13 +228,21 @@ def approve_emoji(v, name):
     	ma = ModAction(
     		kind="approve_emoji",
     		user_id=v.id,
    -		_note=f':{name}:'
    +		_note=f':{emoji.name}:'
     	)
     	g.db.add(ma)
     
     	if emoji.nsfw:
     		OVER_18_EMOJIS.append(emoji.name)
     
    +	cache.delete("emojis_True")
    +	cache.delete(f"emoji_list_{emoji.kind}_True")
    +	if not emoji.nsfw:
    +		cache.delete("emojis_False")
    +		cache.delete(f"emoji_list_{emoji.kind}_False")
    +
    +	purge_files_in_cloudflare_cache(f"{SITE_FULL_IMAGES}/e/{emoji.name}/webp")
    +
     	return {"message": f"'{emoji.name}' approved!"}
     
     def remove_asset(cls, type_name, v, name):
    @@ -277,6 +287,7 @@ def remove_asset(cls, type_name, v, name):
     	return {"message": f"'{name}' removed!"}
     
     @app.post("/remove/emoji/")
    +@feature_required('EMOJI_SUBMISSIONS')
     @limiter.limit('1/second', scope=rpath)
     @limiter.limit('1/second', scope=rpath, key_func=get_ID)
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400)
    @@ -286,6 +297,7 @@ def remove_emoji(v, name):
     	return remove_asset(Emoji, "emoji", v, name)
     
     @app.get("/submit/hats")
    +@feature_required('HAT_SUBMISSIONS')
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400)
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400, key_func=get_ID)
     @auth_required
    @@ -296,6 +308,7 @@ def submit_hats(v):
     
     
     @app.post("/submit/hats")
    +@feature_required('HAT_SUBMISSIONS')
     @limiter.limit('1/second', scope=rpath)
     @limiter.limit('1/second', scope=rpath, key_func=get_ID)
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400)
    @@ -313,7 +326,7 @@ def submit_hat(v):
     	if not file or not file.content_type.startswith('image/'):
     		abort(400, "You need to submit an image!")
     
    -	if not hat_regex.fullmatch(name):
    +	if not hat_name_regex.fullmatch(name):
     		abort(400, "Invalid name!")
     
     	existing = g.db.query(HatDef.name).filter_by(name=name).one_or_none()
    @@ -348,6 +361,7 @@ def submit_hat(v):
     
     
     @app.post("/admin/approve/hat/")
    +@feature_required('HAT_SUBMISSIONS')
     @limiter.limit('1/second', scope=rpath)
     @limiter.limit('1/second', scope=rpath, key_func=get_ID)
     @limiter.limit("120/minute;200/hour;1000/day", deduct_when=lambda response: response.status_code < 400)
    @@ -360,7 +374,7 @@ def approve_hat(v, name):
     
     	new_name = request.values.get('name').strip()
     	if not new_name: abort(400, "You need to include a name!")
    -	if not hat_regex.fullmatch(new_name): abort(400, "Invalid name!")
    +	if not hat_name_regex.fullmatch(new_name): abort(400, "Invalid name!")
     	if not description_regex.fullmatch(description): abort(400, "Invalid description!")
     
     	try:
    @@ -412,23 +426,24 @@ def approve_hat(v, name):
     
     	hat.submitter_id = None
     
    -	move(f"/asset_submissions/hats/{name}.webp", f"files/assets/images/hats/{hat.name}.webp")
    +	move(f"/asset_submissions/hats/{hat.name}.webp", f"files/assets/images/hats/{hat.name}.webp")
     
    -	highquality = f"/asset_submissions/hats/{name}"
    +	highquality = f"/asset_submissions/hats/{hat.name}"
     	with Image.open(highquality) as i:
    -		new_path = f'/asset_submissions/hats/original/{name}.{i.format.lower()}'
    +		new_path = f'/asset_submissions/hats/original/{hat.name}.{i.format.lower()}'
     	rename(highquality, new_path)
     
     	ma = ModAction(
     		kind="approve_hat",
     		user_id=v.id,
    -		_note=f'{name}'
    +		_note=f'{hat.name}'
     	)
     	g.db.add(ma)
     
     	return {"message": f"'{hat.name}' approved!"}
     
     @app.post("/remove/hat/")
    +@feature_required('HAT_SUBMISSIONS')
     @limiter.limit('1/second', scope=rpath)
     @limiter.limit('1/second', scope=rpath, key_func=get_ID)
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400)
    @@ -438,6 +453,7 @@ def remove_hat(v, name):
     	return remove_asset(HatDef, 'hat', v, name)
     
     @app.get("/admin/update/emojis")
    +@feature_required('EMOJI_SUBMISSIONS')
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400)
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400, key_func=get_ID)
     @admin_level_required(PERMS['UPDATE_ASSETS'])
    @@ -446,16 +462,20 @@ def update_emojis(v):
     
     
     @app.post("/admin/update/emojis")
    +@feature_required('EMOJI_SUBMISSIONS')
     @limiter.limit('1/second', scope=rpath)
     @limiter.limit('1/second', scope=rpath, key_func=get_ID)
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400)
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400, key_func=get_ID)
     @admin_level_required(PERMS['UPDATE_ASSETS'])
     def update_emoji(v):
    -	file = request.files["image"]
     	name = request.values.get('name', '').lower().strip()
    -	tags = request.values.get('tags', '').lower().strip()
    +
    +	file = request.files["image"]
     	kind = request.values.get('kind', '').strip()
    +	new_name = request.values.get('new_name', '').strip()
    +	tags = request.values.get('tags', '').lower().strip()
    +	nsfw = request.values.get('nsfw', '').strip()		
     
     	existing = g.db.get(Emoji, name)
     	if not existing:
    @@ -463,6 +483,24 @@ def update_emoji(v):
     
     	updated = False
     
    +	if new_name and existing.name != new_name:
    +		if not emoji_name_regex.fullmatch(new_name):
    +			abort(400, "Invalid new name!")
    +
    +		old_path = f"files/assets/images/emojis/{existing.name}.webp"
    +		new_path = f"files/assets/images/emojis/{new_name}.webp"
    +		copyfile(old_path, new_path)
    +
    +		for x in IMAGE_FORMATS:
    +			original_old_path = f'/asset_submissions/emojis/original/{existing.name}.{x}'
    +			original_new_path = f'/asset_submissions/emojis/original/{new_name}.{x}'
    +			if path.isfile(original_old_path):
    +				rename(original_old_path, original_new_path)
    +
    +		existing.name = new_name
    +		updated = True
    +		name = existing.name
    +
     	if file:
     		if g.is_tor:
     			abort(400, "Image uploads are not allowed through TOR!")
    @@ -487,18 +525,23 @@ def update_emoji(v):
     		purge_files_in_cloudflare_cache([f"{SITE_FULL_IMAGES}/e/{name}.webp", f"{SITE_FULL_IMAGES}/asset_submissions/emojis/original/{name}.{format}"])
     		updated = True
     
    +	if kind and existing.kind != kind:
    +		if kind not in EMOJI_KINDS:
    +			abort(400, "Invalid kind!")
    +		existing.kind = kind
    +		updated = True
     
    -	if tags and existing.tags != tags and tags != "none":
    +	if tags and existing.tags != tags:
     		if not tags_regex.fullmatch(tags):
     			abort(400, "Invalid tags!")
     		existing.tags += f" {tags}"
     		updated = True
     
    -	if kind and existing.kind != kind and kind != "none":
    -		if kind not in EMOJI_KINDS:
    -			abort(400, "Invalid kind!")
    -		existing.kind = kind
    -		updated = True
    +	if nsfw:
    +		nsfw = (nsfw == 'NSFW')
    +		if existing.nsfw != nsfw:
    +			existing.nsfw = nsfw
    +			updated = True
     
     	if not updated:
     		abort(400, "You need to actually update something!")
    @@ -512,12 +555,16 @@ def update_emoji(v):
     	)
     	g.db.add(ma)
     
    -	cache.delete(f"emojis_{existing.nsfw}")
    -	cache.delete(f"emoji_list_{existing.kind}_{existing.nsfw}")
    +	cache.delete("emojis_True")
    +	cache.delete(f"emoji_list_{existing.kind}_True")
    +	if not existing.nsfw:
    +		cache.delete("emojis_False")
    +		cache.delete(f"emoji_list_{existing.kind}_False")
     
     	return {"message": f"'{name}' updated successfully!"}
     
     @app.get("/admin/update/hats")
    +@feature_required('HAT_SUBMISSIONS')
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400)
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400, key_func=get_ID)
     @admin_level_required(PERMS['UPDATE_ASSETS'])
    @@ -526,54 +573,83 @@ def update_hats(v):
     
     
     @app.post("/admin/update/hats")
    +@feature_required('HAT_SUBMISSIONS')
     @limiter.limit('1/second', scope=rpath)
     @limiter.limit('1/second', scope=rpath, key_func=get_ID)
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400)
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400, key_func=get_ID)
     @admin_level_required(PERMS['UPDATE_ASSETS'])
     def update_hat(v):
    -	file = request.files["image"]
     	name = request.values.get('name', '').strip()
     
    -	if g.is_tor:
    -		abort(400, "Image uploads are not allowed through TOR!")
    +	file = request.files["image"]
    +	new_name = request.values.get('new_name', '').strip()
     
    -	if not file or not file.content_type.startswith('image/'):
    -		abort(400, "You need to submit an image!")
    -
    -	if not hat_regex.fullmatch(name):
    -		abort(400, "Invalid name!")
    -
    -	existing = g.db.query(HatDef.name).filter_by(name=name).one_or_none()
    +	existing = g.db.query(HatDef).filter_by(name=name).one_or_none()
     	if not existing:
     		abort(400, "A hat with this name doesn't exist!")
     
    -	highquality = f"/asset_submissions/hats/{name}"
    -	file.save(highquality)
    -	process_image(highquality, v) #to ensure not malware
    +	updated = False
     
    -	with Image.open(highquality) as i:
    -		if i.width > 100 or i.height > 130:
    -			os.remove(highquality)
    -			abort(400, "Images must be 100x130")
    +	if new_name and existing.name != new_name:
    +		if not hat_name_regex.fullmatch(new_name):
    +			abort(400, "Invalid new name!")
     
    -		format = i.format.lower()
    -	new_path = f'/asset_submissions/hats/original/{name}.{format}'
    +		old_path = f"files/assets/images/hats/{existing.name}.webp"
    +		new_path = f"files/assets/images/hats/{new_name}.webp"
    +		rename(old_path, new_path)
     
    -	for x in IMAGE_FORMATS:
    -		if path.isfile(f'/asset_submissions/hats/original/{name}.{x}'):
    -			os.remove(f'/asset_submissions/hats/original/{name}.{x}')
    +		for x in IMAGE_FORMATS:
    +			original_old_path = f'/asset_submissions/hats/original/{existing.name}.{x}'
    +			original_new_path = f'/asset_submissions/hats/original/{new_name}.{x}'
    +			if path.isfile(original_old_path):
    +				rename(original_old_path, original_new_path)
     
    -	rename(highquality, new_path)
    +		existing.name = new_name
    +		updated = True
    +		name = existing.name
    +	
    +	if file:
    +		if g.is_tor:
    +			abort(400, "Image uploads are not allowed through TOR!")
    +		if not file.content_type.startswith('image/'):
    +			abort(400, "You need to submit an image!")
    +
    +		highquality = f"/asset_submissions/hats/{name}"
    +		file.save(highquality)
    +		process_image(highquality, v) #to ensure not malware
    +
    +		with Image.open(highquality) as i:
    +			if i.width > 100 or i.height > 130:
    +				os.remove(highquality)
    +				abort(400, "Images must be 100x130")
    +			format = i.format.lower()
    +
    +		new_path = f'/asset_submissions/hats/original/{name}.{format}'
    +
    +		for x in IMAGE_FORMATS:
    +			if path.isfile(f'/asset_submissions/hats/original/{name}.{x}'):
    +				os.remove(f'/asset_submissions/hats/original/{name}.{x}')
    +
    +		rename(highquality, new_path)
    +
    +		filename = f"files/assets/images/hats/{name}.webp"
    +		copyfile(new_path, filename)
    +		process_image(filename, v, resize=100)
    +		purge_files_in_cloudflare_cache([f"{SITE_FULL_IMAGES}/i/hats/{name}.webp", f"{SITE_FULL_IMAGES}/asset_submissions/hats/original/{name}.{format}"])
    +		updated = True
    +
    +
    +	if not updated:
    +		abort(400, "You need to actually update something!")
    +
    +	g.db.add(existing)
     
    -	filename = f"files/assets/images/hats/{name}.webp"
    -	copyfile(new_path, filename)
    -	process_image(filename, v, resize=100)
    -	purge_files_in_cloudflare_cache([f"{SITE_FULL_IMAGES}/i/hats/{name}.webp", f"{SITE_FULL_IMAGES}/asset_submissions/hats/original/{name}.{format}"])
     	ma = ModAction(
     		kind="update_hat",
     		user_id=v.id,
     		_note=f'{name}'
     	)
     	g.db.add(ma)
    +
     	return {"message": f"'{name}' updated successfully!"}
    diff --git a/files/routes/awards.py b/files/routes/awards.py
    index aa2ccf1f6..7f8135956 100644
    --- a/files/routes/awards.py
    +++ b/files/routes/awards.py
    @@ -16,6 +16,7 @@ from files.helpers.regex import *
     from files.helpers.sanitize import *
     from files.helpers.useractions import *
     from files.routes.wrappers import *
    +from files.routes.routehelpers import get_alt_graph_ids
     from files.__main__ import app, cache, limiter
     
     from .front import frontlist
    @@ -52,31 +53,13 @@ def shop(v):
     	return render_template("shop.html", awards=list(AWARDS.values()), v=v, sales=sales)
     
     
    -@app.post("/buy/")
    -@limiter.limit('1/second', scope=rpath)
    -@limiter.limit('1/second', scope=rpath, key_func=get_ID)
    -@limiter.limit("100/minute;200/hour;1000/day", deduct_when=lambda response: response.status_code < 400)
    -@limiter.limit("100/minute;200/hour;1000/day", deduct_when=lambda response: response.status_code < 400, key_func=get_ID)
    -@auth_required
    -def buy(v, award):
    -	if award == 'ghost':
    -		abort(403, "You can't buy this award!")
    -
    -	AWARDS = deepcopy(AWARDS_ENABLED)
    -
    -	if v.house:
    -		AWARDS[v.house] = HOUSE_AWARDS[v.house]
    -
    -	if award not in AWARDS: abort(400)
    -	og_price = AWARDS[award]["price"]
    -
    -	award_title = AWARDS[award]['title']
    +def buy_award(v, kind, AWARDS):
    +	og_price = AWARDS[kind]["price"]
     	price = int(og_price * v.award_discount)
     
    -
    -	if award == "grass":
    +	if kind == "grass":
     		currency = 'coins'
    -	elif award == "benefactor":
    +	elif kind == "benefactor":
     		currency = 'marseybux'
     	else:
     		currency = 'combined'
    @@ -98,14 +81,10 @@ def buy(v, award):
     		badge_grant(badge_id=69, user=v)
     	g.db.add(v)
     
    -
    -	if award == "lootbox":
    +	if kind == "lootbox":
     		lootbox_items = []
     		for _ in range(LOOTBOX_ITEM_COUNT): # five items per lootbox
    -			if IS_FISTMAS():
    -				LOOTBOX_CONTENTS = FISTMAS_AWARDS
    -			elif IS_HOMOWEEN():
    -				LOOTBOX_CONTENTS = HOMOWEEN_AWARDS
    +			LOOTBOX_CONTENTS = [x["kind"] for x in AWARDS_ENABLED.values() if x["included_in_lootbox"]]
     			lb_award = random.choice(LOOTBOX_CONTENTS)
     			lootbox_items.append(AWARDS[lb_award]['title'])
     			lb_award = AwardRelationship(user_id=v.id, kind=lb_award, price_paid=price // LOOTBOX_ITEM_COUNT)
    @@ -124,17 +103,46 @@ def buy(v, award):
     
     		return {"message": lootbox_msg}
     	else:
    -		award_object = AwardRelationship(user_id=v.id, kind=award, price_paid=price)
    +		award_object = AwardRelationship(user_id=v.id, kind=kind, price_paid=price)
     		g.db.add(award_object)
     
     	g.db.add(v)
     
     	if CARP_ID and v.id != CARP_ID and og_price >= 5000:
    +		award_title = AWARDS[kind]['title']
     		send_repeatable_notification(CARP_ID, f"@{v.username} has bought a `{award_title}` award!")
     
    +	return award_object
    +
    +
    +@app.post("/buy/")
    +@limiter.limit('1/second', scope=rpath)
    +@limiter.limit('1/second', scope=rpath, key_func=get_ID)
    +@limiter.limit("100/minute;200/hour;1000/day", deduct_when=lambda response: response.status_code < 400)
    +@limiter.limit("100/minute;200/hour;1000/day", deduct_when=lambda response: response.status_code < 400, key_func=get_ID)
    +@auth_required
    +def buy(v, kind):
    +	AWARDS = deepcopy(AWARDS_ENABLED)
    +
    +	if v.house:
    +		AWARDS[v.house] = HOUSE_AWARDS[v.house]
    +
    +	if kind not in AWARDS: abort(400)
    +
    +	award_title = AWARDS[kind]['title']
    +
    +	award = buy_award(v, kind, AWARDS)
    +
    +	if isinstance(award, dict):
    +		return award
     
     	return {"message": f"{award_title} award bought!"}
     
    +def alter_body(thing):
    +	thing.body_html = sanitize(thing.body, limit_pings=5, showmore=True, obj=thing, author=thing.author)
    +	if isinstance(thing, Post):
    +		thing.title_html = filter_emojis_only(thing.title, golden=False, obj=thing, author=thing.author)
    +
     @app.post("/award//")
     @limiter.limit('1/second', scope=rpath)
     @limiter.limit('1/second', scope=rpath, key_func=get_ID)
    @@ -146,9 +154,11 @@ def award_thing(v, thing_type, id):
     
     	if thing_type == 'post':
     		thing = get_post(id)
    -	else:
    +	elif thing_type == 'comment':
     		thing = get_comment(id)
     		if not thing.parent_post and not thing.wall_user_id: abort(404) # don't let users award messages
    +	else:
    +		abort(400)
     
     	author = thing.author
     
    @@ -158,6 +168,8 @@ def award_thing(v, thing_type, id):
     
     	if kind not in AWARDS: abort(404, "This award doesn't exist")
     
    +	award_title = AWARDS[kind]['title']
    +
     	award = g.db.query(AwardRelationship).filter(
     		AwardRelationship.kind == kind,
     		AwardRelationship.user_id == v.id,
    @@ -165,7 +177,10 @@ def award_thing(v, thing_type, id):
     		AwardRelationship.comment_id == None
     	).first()
     
    -	if not award: abort(404, "You don't have that award")
    +	if not award: 
    +		award = buy_award(v, kind, AWARDS)
    +		if isinstance(award, dict):
    +			return award
     
     	if thing_type == 'post': award.post_id = thing.id
     	else: award.comment_id = thing.id
    @@ -178,26 +193,35 @@ def award_thing(v, thing_type, id):
     
     	safe_username = f"@{thing.author_name} is"
     
    -	if not AWARDS[kind]['positive'] and author.immune_to_negative_awards(v):
    +	if AWARDS[kind]['negative'] and author.immune_to_negative_awards(v):
     		abort(403, f"{safe_username} immune to negative awards!")
     
    -	if kind == "benefactor" and author.id == v.id:
    -		abort(403, "You can't use this award on yourself!")
    +	if thing_type == 'post' and thing.id == 210983:
    +		abort(403, "You can't award this post!")
    +
    +	if thing_type == 'post' and thing.distinguish_level and AWARDS[kind]['cosmetic']:
    +		abort(403, "Distinguished posts are immune to cosmetic awards!")
    +
    +	if kind == "benefactor":
    +		if author.id == v.id:
    +			abort(403, "You can't use this award on yourself!")
    +		if author.id in get_alt_graph_ids(v.id):
    +			abort(403, "You can't use this award on your alts!")
     
     	if thing.ghost and not AWARDS[kind]['ghost']:
     		abort(403, "This kind of award can't be used on ghost posts!")
     
     	if v.id != author.id:
     		if author.deflector and v.deflector and AWARDS[kind]['deflectable']:
    -			msg = f"@{v.username} has tried to give your [{thing_type}]({thing.shortlink}) the {AWARDS[kind]['title']} Award but it was deflected on them, they also had a deflector up, so it bounced back and forth until it vaporized!"
    +			msg = f"@{v.username} has tried to give your [{thing_type}]({thing.shortlink}) the {award_title} Award but it was deflected on them, they also had a deflector up, so it bounced back and forth until it vaporized!"
     			send_repeatable_notification(author.id, msg)
     
    -			msg = f"{safe_username} under the effect of a deflector award; your {AWARDS[kind]['title']} Award has been deflected back to you but your deflector protected you, the award bounced back and forth until it vaporized!"
    +			msg = f"{safe_username} under the effect of a deflector award; your {award_title} Award has been deflected back to you but your deflector protected you, the award bounced back and forth until it vaporized!"
     			send_repeatable_notification(v.id, msg)
     
     			g.db.delete(award)
     
    -			return {"message": f"{AWARDS[kind]['title']} award given to {thing_type} successfully!"}
    +			return {"message": f"{award_title} award given to {thing_type} successfully!"}
     
     		if author.deflector and AWARDS[kind]['deflectable']:
     			author = v
    @@ -208,16 +232,17 @@ def award_thing(v, thing_type, id):
     				v.charge_account('coins', awarded_coins, should_check_balance=False)
     				thing.author.pay_account('coins', awarded_coins)
     		elif kind != 'spider':
    -			if AWARDS[kind]['cosmetic']:
    +			if AWARDS[kind]['cosmetic'] and not AWARDS[kind]['included_in_lootbox']:
     				awarded_coins = int(AWARDS[kind]['price'] * COSMETIC_AWARD_COIN_AWARD_PCT)
     			else:
     				awarded_coins = 0
     
    -			if kind == 'shit':
    -				author.charge_account('coins', awarded_coins, should_check_balance=False)
    -				v.pay_account('coins', awarded_coins)
    -			elif AWARDS[kind]['cosmetic']:
    -				author.pay_account('coins', awarded_coins)
    +			if awarded_coins:
    +				if kind == 'shit':
    +					author.charge_account('coins', awarded_coins, should_check_balance=False)
    +					v.pay_account('coins', awarded_coins)
    +				else:
    +					author.pay_account('coins', awarded_coins)
     
     			if thing_type == 'comment':
     				link_text_in_notif = "your comment"
    @@ -232,7 +257,7 @@ def award_thing(v, thing_type, id):
     
     	link = f"[this {thing_type}]({thing.shortlink})"
     
    -	alter_body = not (isinstance(thing, Post) and len(thing.body) > 1000) and (not thing.author.deflector or v == thing.author)
    +	can_alter_body = not thing.is_effortpost and (not thing.author.deflector or v == thing.author)
     
     	if kind == "ban":
     		link = f"/{thing_type}/{thing.id}"
    @@ -310,9 +335,6 @@ def award_thing(v, thing_type, id):
     				cache.delete_memoized(frontlist)
     			else: thing.stickied_utc = t
     	elif kind == "queen":
    -		if author.chud:
    -			abort(409, f"{safe_username} under the effect of a conflicting award: Chud award!")
    -
     		if not author.queen:
     			characters = list(filter(str.isalpha, author.username))
     			if characters:
    @@ -344,31 +366,16 @@ def award_thing(v, thing_type, id):
     
     		badge_grant(user=author, badge_id=285)
     
    -		if alter_body:
    +		if can_alter_body:
     			thing.queened = True
    -			thing.body_html = sanitize(thing.body, limit_pings=5, showmore=True, obj=thing, author=author)
    -			if isinstance(thing, Post):
    -				thing.title_html = filter_emojis_only(thing.title, golden=False, obj=thing, author=author)
    -
    +			alter_body(thing)
     	elif kind == "chud":
     		if thing_type == 'post' and thing.hole == 'chudrama' \
     			or thing_type == 'comment' and thing.post and thing.post.hole == 'chudrama':
     			abort(403, "You can't give the chud award in /h/chudrama")
     
    -		if author.queen:
    -			abort(409, f"{safe_username} under the effect of a conflicting award: Queen award!")
    -
    -		if author.marseyawarded:
    -			abort(409, f"{safe_username} under the effect of a conflicting award: Marsey award!")
    -
    -		if author.owoify:
    -			abort(409, f"{safe_username} under the effect of a conflicting award: OwOify award!")
    -
    -		if author.sharpen:
    -			abort(409, f"{safe_username} under the effect of a conflicting award: Sharpen award!")
    -
     		if author.chud == 1:
    -			abort(409, f"{safe_username} already chudded permanently!")
    +			abort(409, f"{safe_username} already permanently chudded!")
     
     		if author.chud and time.time() < author.chud: author.chud += 86400
     		else: author.chud = int(time.time()) + 86400
    @@ -382,7 +389,7 @@ def award_thing(v, thing_type, id):
     
     		badge_grant(user=author, badge_id=58)
     
    -		if alter_body:
    +		if can_alter_body:
     			thing.chudded = True
     			complies_with_chud(thing)
     	elif kind == "flairlock":
    @@ -399,11 +406,11 @@ def award_thing(v, thing_type, id):
     			badge_grant(user=author, badge_id=96)
     	elif kind == "namelock":
     		new_name = note.strip().lstrip('@')
    -		if not new_name and author.namechanged:
    +		if author.namechanged and (not new_name or new_name == author.username):
     			author.namechanged += 86400
     		else:
     			if not valid_username_regex.fullmatch(new_name):
    -				abort(400, "Invalid username")
    +				abort(400, "You need to enter a valid username to change the recipient to.")
     
     			existing = get_user(new_name, graceful=True)
     			if existing and existing.id != author.id:
    @@ -418,25 +425,28 @@ def award_thing(v, thing_type, id):
     		badge_grant(badge_id=68, user=author)
     	elif kind == "unpausable":
     		badge_grant(badge_id=67, user=author)
    -	elif kind == "marsey":
    -		if author.chud:
    -			abort(409, f"{safe_username} under the effect of a conflicting award: Chud award!")
    -
    -		if author.marseyawarded: author.marseyawarded += 86400
    -		else: author.marseyawarded = int(time.time()) + 86400
    +	elif kind == "hieroglyphs":
    +		if author.hieroglyphs: author.hieroglyphs += 86400
    +		else: author.hieroglyphs = int(time.time()) + 86400
     		badge_grant(user=author, badge_id=98)
     	elif kind == "pizzashill":
     		if author.bird:
    -			abort(409, f"{safe_username} under the effect of a conflicting award: Bird Site award!")
    -		if author.longpost: author.longpost += 86400
    -		else: author.longpost = int(time.time()) + 86400
    -		badge_grant(user=author, badge_id=97)
    +			author.bird = 0
    +			badge = author.has_badge(95)
    +			if badge: g.db.delete(badge)
    +		else:
    +			if author.longpost: author.longpost += 86400
    +			else: author.longpost = int(time.time()) + 86400
    +			badge_grant(user=author, badge_id=97)
     	elif kind == "bird":
     		if author.longpost:
    -			abort(409, f"{safe_username} under the effect of a conflicting award: Pizzashill award!")
    -		if author.bird: author.bird += 86400
    -		else: author.bird = int(time.time()) + 86400
    -		badge_grant(user=author, badge_id=95)
    +			author.longpost = 0
    +			badge = author.has_badge(97)
    +			if badge: g.db.delete(badge)
    +		else:
    +			if author.bird: author.bird += 86400
    +			else: author.bird = int(time.time()) + 86400
    +			badge_grant(user=author, badge_id=95)
     	elif kind == "eye":
     		badge_grant(badge_id=83, user=author)
     	elif kind == "offsitementions":
    @@ -459,7 +469,7 @@ def award_thing(v, thing_type, id):
     			author.patron = 1
     		if author.patron_utc: author.patron_utc += 2629746
     		else: author.patron_utc = int(time.time()) + 2629746
    -		author.pay_account('marseybux', 2000)
    +		author.pay_account('marseybux', 1250)
     		badge_grant(user=v, badge_id=103)
     	elif kind == "rehab":
     		if author.rehab: author.rehab += 86400
    @@ -476,17 +486,13 @@ def award_thing(v, thing_type, id):
     	elif kind == "pride":
     		badge_grant(user=author, badge_id=303)
     	elif kind == 'marsify':
    -		if author.chud:
    -			abort(409, f"{safe_username} under the effect of a conflicting award: Chud award!")
     		if not author.marsify or author.marsify != 1:
     			if author.marsify: author.marsify += 86400
     			else: author.marsify = int(time.time()) + 86400
     		badge_grant(user=author, badge_id=170)
     
    -		if alter_body:
    -			thing.body_html = sanitize(thing.body, limit_pings=5, showmore=True, obj=thing, author=author)
    -			if isinstance(thing, Post):
    -				thing.title_html = filter_emojis_only(thing.title, golden=False, obj=thing, author=author)
    +		if can_alter_body:
    +			alter_body(thing)
     	elif "Vampire" in kind and kind == v.house:
     		if author.bite: author.bite += 172800
     		else:
    @@ -503,49 +509,51 @@ def award_thing(v, thing_type, id):
     		else: author.earlylife = int(time.time()) + 86400
     		badge_grant(user=author, badge_id=169)
     	elif ("Furry" in kind and kind == v.house) or kind == 'owoify':
    -		if author.chud:
    -			abort(409, f"{safe_username} under the effect of a conflicting award: Chud award!")
    -
     		if author.owoify: author.owoify += 21600
     		else: author.owoify = int(time.time()) + 21600
     		badge_grant(user=author, badge_id=167)
     
    -		if alter_body:
    -			thing.body_html = sanitize(thing.body, limit_pings=5, showmore=True, obj=thing, author=author)
    -			if isinstance(thing, Post):
    -				thing.title_html = filter_emojis_only(thing.title, golden=False, obj=thing, author=author)
    +		if can_alter_body:
    +			alter_body(thing)
     	elif ("Edgy" in kind and kind == v.house) or kind == 'sharpen':
    -		if author.chud:
    -			abort(409, f"{safe_username} under the effect of a conflicting award: Chud award!")
    -
     		if author.sharpen: author.sharpen += 86400
     		else: author.sharpen = int(time.time()) + 86400
     		badge_grant(user=author, badge_id=289)
     
    -		if alter_body:
    +		if can_alter_body:
     			thing.sharpened = True
    -			thing.body_html = sanitize(thing.body, limit_pings=5, showmore=True, obj=thing, author=author)
    -			if isinstance(thing, Post):
    -				thing.title_html = filter_emojis_only(thing.title, golden=False, obj=thing, author=author)
    +			alter_body(thing)
     	elif ("Femboy" in kind and kind == v.house) or kind == 'rainbow':
     		if author.rainbow: author.rainbow += 86400
     		else: author.rainbow = int(time.time()) + 86400
     		badge_grant(user=author, badge_id=171)
    -		thing.rainbowed = True
    +		if can_alter_body:
    +			thing.rainbowed = True
     	elif kind == "emoji":
     		award.note = award.note.strip(":").lower()
     		emoji = g.db.query(Emoji).filter_by(name=award.note).one_or_none()
     		if not emoji:
     			abort(404, f'an Emoji with the name "{award.note}" was not found!')
    +	elif IS_FISTMAS():
    +		if kind == "grinch":
    +			badge_grant(badge_id=91, user=author)
    +			if v.id == author.id:
    +				session['event_music'] = False
    +		elif kind == "candycane":
    +			if thing.is_effortpost:
    +				abort(403, f'Effortposts are protected from the {award_title} award!')
     	elif IS_HOMOWEEN():
    -		if kind == "spider":
    +		if kind == "hallowgrinch":
    +			badge_grant(badge_id=185, user=author)
    +			if v.id == author.id:
    +				session['event_music'] = False
    +		elif kind in {"ectoplasm", "candy-corn"}:
    +			if thing.is_effortpost:
    +				abort(403, f'Effortposts are protected from the {award_title} award!')
    +		elif kind == "spider":
     			if author.spider: author.spider += 86400
     			else: author.spider = int(time.time()) + 86400
     			badge_grant(user=author, badge_id=179, notify=False)
    -		elif kind == "grinch":
    -			badge_grant(badge_id=91, user=author)
    -		elif kind == "hw-grinch":
    -			badge_grant(badge_id=185, user=author)
     		elif kind == "bite":
     			if author.zombie < 0:
     				author = v
    @@ -583,15 +591,18 @@ def award_thing(v, thing_type, id):
     		elif kind == "jumpscare":
     			author.jumpscare += 1
     
    -
    +	author = thing.author
     	if v.id != author.id:
     		if author.deflector and AWARDS[kind]['deflectable']:
    -			msg = f"@{v.username} has tried to give your [{thing_type}]({thing.shortlink}) the {AWARDS[kind]['title']} Award but it was deflected and applied to them :marseytroll:"
    -			send_repeatable_notification(author.id, msg)
    -			msg = f"{safe_username} under the effect of a deflector award; your {AWARDS[kind]['title']} Award has been deflected back to you :marseytroll:"
    -			send_repeatable_notification(v.id, msg)
    -		elif kind != 'spider':
    -			msg = f"@{v.username} has given [{link_text_in_notif}]({thing.shortlink}) the {AWARDS[kind]['title']} Award"
    +			msg = f"@{v.username} has tried to give your [{thing_type}]({thing.shortlink}) the {award_title} Award but it was deflected and applied to them :marseytroll:"
    +			n = send_repeatable_notification(author.id, msg)
    +			if n: n.created_utc -= 1
    +
    +			msg = f"@{thing.author_name} is under the effect of a deflector award; your {award_title} Award has been deflected back to you :marseytroll:"
    +			n = send_repeatable_notification(v.id, msg)
    +			if n: n.created_utc -= 1
    +		elif kind not in {'spider', 'jumpscare'}:
    +			msg = f"@{v.username} has given [{link_text_in_notif}]({thing.shortlink}) the {award_title} Award"
     
     			if kind == 'shit':
     				msg += f" and has stolen from you {awarded_coins} coins as a result"
    @@ -599,13 +610,15 @@ def award_thing(v, thing_type, id):
     				msg += f" and you have received {awarded_coins} coins as a result"
     
     			msg += "!"
    -			if note:
    +			if kind == 'emoji':
    +				msg += f"\n\n> :{award.note}:"
    +			elif note:
     				note = '\n\n> '.join(note.splitlines())
     				if kind == "chud":
     					msg += f"\n\n**You now have to say this phrase in all posts and comments you make for 24 hours:**"
     				msg += f"\n\n> {note}"
    -			send_repeatable_notification(author.id, msg)
    -
    +			n = send_repeatable_notification(author.id, msg)
    +			if n: n.created_utc -= 1
     
     	if author.received_award_count: author.received_award_count += 1
     	else: author.received_award_count = 1
    @@ -613,20 +626,29 @@ def award_thing(v, thing_type, id):
     
     	g.db.add(thing)
     
    -	return {"message": f"{AWARDS[kind]['title']} award given to {thing_type} successfully!"}
    +	if award.kind == "emoji":
    +		emoji_behavior = request.values.get("emoji_behavior").strip()
    +		if emoji_behavior == "horizontal":
    +			award.kind = "emoji-hz"
    +
    +	return {"message": f"{award_title} award given to {thing_type} successfully!"}
     
     @app.post("/trick-or-treat")
     @limiter.limit("1/hour", key_func=lambda:f'{SITE}-{session.get("lo_user")}')
     @auth_required
     def trick_or_treat(v):
    -	if v.client: abort(403, "Not allowed from the API")
    +	if v.client:
    +		abort(403, "Not allowed from the API")
    +	if not IS_HOMOWEEN():
    +		abort(403)
     
     	result = random.choice([0,1])
     
     	if result == 0:
     		message = "Trick!"
     	else:
    -		award = random.choice(HOMOWEEN_AWARDS)
    +		choices = [x["kind"] for x in AWARDS_ENABLED.values() if x["included_in_lootbox"]]
    +		award = random.choice(choices)
     		award_object = AwardRelationship(user_id=v.id, kind=award)
     		g.db.add(award_object)
     
    @@ -639,7 +661,11 @@ def trick_or_treat(v):
     @app.post("/jumpscare")
     @auth_required
     def execute_jumpscare(v):
    -	if v.client: abort(403, "Not allowed from the API")
    +	if v.client:
    +		abort(403, "Not allowed from the API")
    +	if not IS_HOMOWEEN():
    +		abort(403)
    +
     	if v.jumpscare > 0:
     		v.jumpscare -= 1
     		g.db.add(v)
    diff --git a/files/routes/chat.py b/files/routes/chat.py
    index 9c4a31a1d..f8a9fe2cc 100644
    --- a/files/routes/chat.py
    +++ b/files/routes/chat.py
    @@ -28,37 +28,17 @@ socketio = SocketIO(
     
     muted = cache.get(f'muted') or {}
     
    -ALLOWED_REFERRERS = {
    -	f'{SITE_FULL}/chat',
    -	f'{SITE_FULL}/notifications/messages',
    -}
    +messages = cache.get(f'messages') or {}
    +online = {}
    +typing = []
     
    -messages = cache.get(f'messages') or {
    -	f'{SITE_FULL}/chat': {},
    -}
    -typing = {
    -	f'{SITE_FULL}/chat': [],
    -}
    -online = {
    -	f'{SITE_FULL}/chat': {},
    -}
    -
    -cache.set('loggedin_chat', len(online[f'{SITE_FULL}/chat']), timeout=0)
    -
    -def set_g_referrer():
    -	if request.referrer:
    -		g.referrer = request.referrer.split('?')[0]
    -		if g.referrer not in ALLOWED_REFERRERS:
    -			g.referrer = None
    -	else:
    -		g.referrer = None
    +cache.set('loggedin_chat', len(online), timeout=0)
     
     def auth_required_socketio(f):
     	def wrapper(*args, **kwargs):
     		v = get_logged_in_user()
     		if not v: return '', 401
     		if v.is_permabanned: return '', 403
    -		set_g_referrer()
     		return make_response(f(*args, v=v, **kwargs))
     	wrapper.__name__ = f.__name__
     	return wrapper
    @@ -68,7 +48,6 @@ def is_not_banned_socketio(f):
     		v = get_logged_in_user()
     		if not v: return '', 401
     		if v.is_suspended: return '', 403
    -		set_g_referrer()
     		return make_response(f(*args, v=v, **kwargs))
     	wrapper.__name__ = f.__name__
     	return wrapper
    @@ -77,7 +56,7 @@ CHAT_ERROR_MESSAGE = f"To prevent spam, you'll need {TRUESCORE_MINIMUM} truescor
     
     @app.post('/refresh_chat')
     def refresh_chat():
    -	emit('refresh_chat', namespace='/', to=f'{SITE_FULL}/chat')
    +	emit('refresh_chat', namespace='/', to="chat")
     	return ''
     
     @app.get("/chat")
    @@ -88,26 +67,18 @@ def chat(v):
     	if not v.allowed_in_chat:
     		abort(403, CHAT_ERROR_MESSAGE)
     
    -	displayed_messages = {k: val for k, val in messages[f"{SITE_FULL}/chat"].items() if val["user_id"] not in v.userblocks}
    +	displayed_messages = {k: val for k, val in messages.items() if val["user_id"] not in v.userblocks}
     
    -	orgy = get_orgy(v)
    +	orgy = get_running_orgy(v)
     	if orgy:
    -		m = md5()
    -		with open('files/assets/subtitles.vtt', "rb") as f:
    -			data = f.read()
    -		m.update(data)
    -		subtitles_hash = m.hexdigest()
    -
    -		return render_template("orgy.html", v=v, messages=displayed_messages, orgy=orgy, subtitles_hash=subtitles_hash)
    +		x = secrets.token_urlsafe(8)
    +		return render_template("orgy.html", v=v, messages=displayed_messages, orgy=orgy, x=x)
     
     	return render_template("chat.html", v=v, messages=displayed_messages)
     
     @socketio.on('speak')
     @is_not_banned_socketio
     def speak(data, v):
    -	if not g.referrer:
    -		return '', 400
    -
     	image = None
     	if data['file']:
     		name = f'/chat_images/{time.time()}'.replace('.','') + '.webp'
    @@ -149,20 +120,20 @@ def speak(data, v):
     			refresh_online()
     
     		if not self_only:
    -			identical = [x for x in list(messages[g.referrer].values())[-5:] if v.id == x['user_id'] and text == x['text']]
    +			identical = [x for x in list(messages.values())[-5:] if v.id == x['user_id'] and text == x['text']]
     			if len(identical) >= 3: shut_up()
     
     		if not self_only:
    -			count = len([x for x in list(messages[g.referrer].values())[-12:] if v.id == x['user_id']])
    +			count = len([x for x in list(messages.values())[-12:] if v.id == x['user_id']])
     			if count >= 10: shut_up()
     
     		if not self_only:
    -			count = len([x for x in list(messages[g.referrer].values())[-25:] if v.id == x['user_id']])
    +			count = len([x for x in list(messages.values())[-25:] if v.id == x['user_id']])
     			if count >= 20: shut_up()
     
     	data = {
     		"id": id,
    -		"quotes": quotes if messages[g.referrer].get(quotes) else '',
    +		"quotes": quotes if messages.get(quotes) else '',
     		"hat": v.hat_active(v)[0],
     		"user_id": v.id,
     		"username": v.username,
    @@ -187,107 +158,85 @@ def speak(data, v):
     	if self_only or v.shadowbanned or execute_blackjack(v, None, text, "chat"):
     		emit('speak', data)
     	else:
    -		emit('speak', data, room=g.referrer, broadcast=True)
    -		messages[g.referrer][id] = data
    -		messages[g.referrer] = dict(list(messages[g.referrer].items())[-250:])
    +		emit('speak', data, room="chat", broadcast=True)
    +		messages[id] = data
    +		messages = dict(list(messages.items())[-250:])
     
     	typing = []
     
    -	return '', 204
    +	return ''
     
     def refresh_online():
    -	for li in online.values():
    -		for k, val in list(li.items()):
    -			if time.time() > val[0]:
    -				del li[k]
    -				if val[1] in typing[g.referrer]:
    -					typing[g.referrer].remove(val[1])
    +	for k, val in list(online.items()):
    +		if time.time() > val[0]:
    +			del online[k]
    +			if val[1] in typing:
    +				typing.remove(val[1])
     
    -	data = [list(online[g.referrer].values()), muted]
    -	emit("online", data, room=g.referrer, broadcast=True)
    -	cache.set('loggedin_chat', len(online[f'{SITE_FULL}/chat']), timeout=0)
    +	data = [list(online.values()), muted]
    +	emit("online", data, room="chat", broadcast=True)
    +	cache.set('loggedin_chat', len(online), timeout=0)
     
     @socketio.on('connect')
     @auth_required_socketio
     def connect(v):
    -	if not g.referrer:
    -		return '', 400
    -
    -	if g.referrer == f'{SITE_FULL}/notifications/messages':
    +	if request.referrer == f'{SITE_FULL}/notifications/messages':
     		join_room(v.id)
     		return ''
     
    -	join_room(g.referrer)
    +	join_room("chat")
     
    -	if v.username in typing[g.referrer]:
    -		typing[g.referrer].remove(v.username)
    +	if v.username in typing:
    +		typing.remove(v.username)
     
    -	emit('typing', typing[g.referrer], room=g.referrer)
    -	return '', 204
    +	emit('typing', typing, room="chat")
    +	return ''
     
     @socketio.on('disconnect')
     @auth_required_socketio
     def disconnect(v):
    -	if g.referrer != f'{SITE_FULL}/notifications/messages':
    -		for dictionary in online.values():
    -			dictionary.pop(v.id, None)
    -
    -		if g.referrer and v.username in typing[g.referrer]:
    -			typing[g.referrer].remove(v.username)
    -
    -	if not g.referrer:
    -		return '', 400
    -	elif g.referrer == f'{SITE_FULL}/notifications/messages':
    +	if request.referrer == f'{SITE_FULL}/notifications/messages':
     		leave_room(v.id)
    -	else:
    -		leave_room(g.referrer)
    -		refresh_online()
    +		return ''
     
    -	return '', 204
    +	online.pop(v.id, None)
    +
    +	if v.username in typing:
    +		typing.remove(v.username)
    +
    +	leave_room("chat")
    +	refresh_online()
    +
    +	return ''
     
     @socketio.on('heartbeat')
     @auth_required_socketio
     def heartbeat(v):
    -	if g.referrer not in ALLOWED_REFERRERS:
    -		return '', 400
     	expire_utc = int(time.time()) + 3610
    -	already_there = online[g.referrer].get(v.id)
    -	online[g.referrer][v.id] = (expire_utc, v.username, v.name_color, v.patron, v.id)
    +	already_there = online.get(v.id)
    +	online[v.id] = (expire_utc, v.username, v.name_color, v.patron, v.id)
     	if not already_there:
     		refresh_online()
    -	return '', 204
    +	return ''
     
     @socketio.on('typing')
     @is_not_banned_socketio
     def typing_indicator(data, v):
    -	if not g.referrer:
    -		return '', 400
    +	if data and v.username not in typing:
    +		typing.append(v.username)
    +	elif not data and v.username in typing:
    +		typing.remove(v.username)
     
    -	if data and v.username not in typing[g.referrer]:
    -		typing[g.referrer].append(v.username)
    -	elif not data and v.username in typing[g.referrer]:
    -		typing[g.referrer].remove(v.username)
    -
    -	emit('typing', typing[g.referrer], room=g.referrer, broadcast=True)
    -	return '', 204
    +	emit('typing', typing, room="chat", broadcast=True)
    +	return ''
     
     
     @socketio.on('delete')
     @admin_level_required(PERMS['POST_COMMENT_MODERATION'])
     def delete(id, v):
    -	set_g_referrer()
    -
    -	if not g.referrer:
    -		return '', 400
    -
    -	for k, val in messages[g.referrer].items():
    -		if k == id:
    -			del messages[g.referrer][k]
    -			break
    -
    -	emit('delete', id, room=g.referrer, broadcast=True)
    -
    -	return '', 204
    +	messages.pop(id, None)
    +	emit('delete', id, room="chat", broadcast=True)
    +	return ''
     
     
     def close_running_threads():
    diff --git a/files/routes/comments.py b/files/routes/comments.py
    index d13f735a7..9e027a862 100644
    --- a/files/routes/comments.py
    +++ b/files/routes/comments.py
    @@ -275,7 +275,7 @@ def comment(v):
     
     	c.upvotes = 1
     
    -	body_html = sanitize(body, limit_pings=5, showmore=(not v.marseyawarded), count_emojis=not v.marsify, commenters_ping_post_id=commenters_ping_post_id, obj=c, author=v)
    +	body_html = sanitize(body, limit_pings=5, showmore=(not v.hieroglyphs), count_emojis=not v.marsify, commenters_ping_post_id=commenters_ping_post_id, obj=c, author=v)
     
     	if post_target.id not in ADMIGGER_THREADS and not (v.chud and v.chud_phrase in body.lower()):
     		existing = g.db.query(Comment.id).filter(
    @@ -291,7 +291,7 @@ def comment(v):
     	execute_antispam_comment_check(body, v)
     	execute_antispam_duplicate_comment_check(v, body_html)
     
    -	if v.marseyawarded and marseyaward_body_regex.search(body_html) and not (posting_to_post and post_target.id in ADMIGGER_THREADS):
    +	if v.hieroglyphs and marseyaward_body_regex.search(body_html) and not (posting_to_post and post_target.id in ADMIGGER_THREADS):
     		abort(403, "You can only type marseys!")
     
     	if len(body_html) > COMMENT_BODY_HTML_LENGTH_LIMIT:
    @@ -302,7 +302,7 @@ def comment(v):
     	g.db.add(c)
     	g.db.flush()
     
    -	process_poll_options(v, c)
    +	process_options(v, c)
     
     	execute_blackjack(v, c, c.body, "comment")
     	execute_under_siege(v, c, c.body, "comment")
    @@ -426,7 +426,7 @@ def comment(v):
     	gevent.spawn(postprocess_comment, c.body, c.body_html, c.id)
     
     	if v.client: return c.json
    -	return {"comment": render_template("comments.html", v=v, comments=[c])}
    +	return {"id": c.id, "comment": render_template("comments.html", v=v, comments=[c])}
     
     @app.post("/delete/comment/")
     @limiter.limit('1/second', scope=rpath)
    @@ -610,10 +610,7 @@ def diff_words(answer, guess):
     def toggle_comment_nsfw(cid, v):
     	comment = get_comment(cid)
     
    -	if comment.author_id != v.id and v.admin_level < PERMS['POST_COMMENT_MODERATION'] and not (comment.post.hole and v.mods(comment.post.hole)):
    -		abort(403)
    -
    -	if comment.nsfw and v.is_permabanned:
    +	if comment.author_id != v.id and v.admin_level < PERMS['POST_COMMENT_MODERATION'] and not (comment.post and comment.post.hole and v.mods(comment.post.hole)) and comment.wall_user_id != v.id:
     		abort(403)
     
     	comment.nsfw = not comment.nsfw
    @@ -627,7 +624,7 @@ def toggle_comment_nsfw(cid, v):
     					target_comment_id = comment.id,
     				)
     			g.db.add(ma)
    -		else:
    +		elif comment.post and comment.post.hole and v.mods(comment.post.hole):
     			ma = HoleAction(
     					hole = comment.post.hole,
     					kind = "set_nsfw_comment" if comment.nsfw else "unset_nsfw_comment",
    @@ -675,11 +672,11 @@ def edit_comment(cid, v):
     		body = process_files(request.files, v, body)
     		body = body[:COMMENT_BODY_LENGTH_LIMIT].strip() # process_files potentially adds characters to the post
     
    -		body_html = sanitize(body, golden=False, limit_pings=5, showmore=(not v.marseyawarded), commenters_ping_post_id=c.parent_post, obj=c, author=c.author)
    +		body_html = sanitize(body, golden=False, limit_pings=5, showmore=(not v.hieroglyphs), commenters_ping_post_id=c.parent_post, obj=c, author=c.author)
     
     		if len(body_html) > COMMENT_BODY_HTML_LENGTH_LIMIT: abort(400)
     
    -		if c.author.marseyawarded and marseyaward_body_regex.search(body_html):
    +		if c.author.hieroglyphs and marseyaward_body_regex.search(body_html):
     			abort(403, "You can only type marseys!")
     
     		oldtext = c.body
    @@ -693,7 +690,7 @@ def edit_comment(cid, v):
     		if not complies_with_chud(c):
     			abort(403, f'You have to include "{c.author.chud_phrase}" in your comment!')
     
    -		process_poll_options(v, c)
    +		process_options(v, c)
     
     		if v.id == c.author_id:
     			if int(time.time()) - c.created_utc > 60 * 3:
    diff --git a/files/routes/errors.py b/files/routes/errors.py
    index 212d112a5..a6ec6cf89 100644
    --- a/files/routes/errors.py
    +++ b/files/routes/errors.py
    @@ -67,4 +67,4 @@ def error_500(e):
     def allow_nsfw():
     	session["nsfw_cookies"] = int(time.time()) + 3600
     	redir = request.values.get("redir", "/")
    -	return '', 204
    +	return ''
    diff --git a/files/routes/front.py b/files/routes/front.py
    index e555f6dfb..442520aac 100644
    --- a/files/routes/front.py
    +++ b/files/routes/front.py
    @@ -195,7 +195,10 @@ def random_post(v):
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400, key_func=get_ID)
     @auth_required
     def random_user(v):
    -	u = g.db.query(User.username).filter(User.song != None).order_by(func.random()).first()
    +	u = g.db.query(User.username).filter(
    +		User.song != None,
    +		User.shadowbanned == None,
    +	).order_by(func.random()).first()
     
     	if u: u = u[0]
     	else: abort(404, "No users have set a profile anthem so far!")
    diff --git a/files/routes/groups.py b/files/routes/groups.py
    index 6455370e3..c6c6fab7c 100644
    --- a/files/routes/groups.py
    +++ b/files/routes/groups.py
    @@ -52,6 +52,8 @@ def create_group(v):
     		)
     	g.db.add(group_membership)
     
    +	g.db.flush() #Necessary, to make linkfying the ping group in the notification work
    +
     	admins = [x[0] for x in g.db.query(User.id).filter(User.admin_level >= PERMS['NOTIFICATIONS_HOLE_CREATION'], User.id != v.id)]
     	for admin in admins:
     		send_repeatable_notification(admin, f":!marseyparty: !{group} has been created by @{v.username} :marseyparty:")
    diff --git a/files/routes/jinja2.py b/files/routes/jinja2.py
    index a7ace365d..b376a4ba6 100644
    --- a/files/routes/jinja2.py
    +++ b/files/routes/jinja2.py
    @@ -1,5 +1,6 @@
     import time
     import math
    +import datetime
     
     from os import environ, listdir, path
     
    @@ -9,7 +10,7 @@ from PIL import ImageColor
     from sqlalchemy import text
     
     from files.classes.user import User
    -from files.classes.orgy import get_orgy
    +from files.classes.orgy import get_running_orgy
     from files.helpers.assetcache import assetcache_path
     from files.helpers.config.const import *
     from files.helpers.const_stateful import OVER_18_EMOJIS
    @@ -107,12 +108,14 @@ def max_days():
     
     @cache.memoize(timeout=60)
     def bar_position():
    +	t = int(time.time()) - 86400
    +
     	db = db_session()
     	vaxxed = db.execute(text("SELECT COUNT(*) FROM users WHERE zombie > 0")).one()[0]
     	zombie = db.execute(text("SELECT COUNT(*) FROM users WHERE zombie < 0")).one()[0]
     	total = db.execute(text("SELECT COUNT(*) FROM "
     		"(SELECT DISTINCT ON (author_id) author_id AS uid FROM comments "
    -			"WHERE created_utc > 1666402200) AS q1 "
    +			f"WHERE created_utc > {t}) AS q1 "
     		"FULL OUTER JOIN (SELECT id AS uid FROM users WHERE zombie != 0) as q2 "
     		"ON q1.uid = q2.uid")).one()[0]
     	total = max(total, 1)
    @@ -148,5 +151,5 @@ def inject_constants():
     			"CHUD_PHRASES":CHUD_PHRASES, "hasattr":hasattr, "calc_users":calc_users, "HOLE_INACTIVITY_DELETION":HOLE_INACTIVITY_DELETION, "LIGHT_THEMES":LIGHT_THEMES, "OVER_18_EMOJIS":OVER_18_EMOJIS,
     			"MAX_IMAGE_AUDIO_SIZE_MB":MAX_IMAGE_AUDIO_SIZE_MB, "MAX_IMAGE_AUDIO_SIZE_MB_PATRON":MAX_IMAGE_AUDIO_SIZE_MB_PATRON,
     			"MAX_VIDEO_SIZE_MB":MAX_VIDEO_SIZE_MB, "MAX_VIDEO_SIZE_MB_PATRON":MAX_VIDEO_SIZE_MB_PATRON,
    -			"CURSORMARSEY_DEFAULT":CURSORMARSEY_DEFAULT, "SNAPPY_ID":SNAPPY_ID, "get_orgy":get_orgy, "TRUESCORE_MINIMUM":TRUESCORE_MINIMUM, "bar_position":bar_position,
    +			"CURSORMARSEY_DEFAULT":CURSORMARSEY_DEFAULT, "SNAPPY_ID":SNAPPY_ID, "get_running_orgy":get_running_orgy, "TRUESCORE_MINIMUM":TRUESCORE_MINIMUM, "bar_position":bar_position, "datetime":datetime, "CSS_LENGTH_LIMIT":CSS_LENGTH_LIMIT
     		}
    diff --git a/files/routes/login.py b/files/routes/login.py
    index 236702b09..530d28b04 100644
    --- a/files/routes/login.py
    +++ b/files/routes/login.py
    @@ -291,13 +291,14 @@ def sign_up_post(v):
     				"sitekey": TURNSTILE_SITEKEY}
     		url = "https://challenges.cloudflare.com/turnstile/v0/siteverify"
     
    -		x = requests.post(url, data=data, timeout=5)
    -
    -		try:
    -			if not x.json().get("success"):
    +		try: x = requests.post(url, data=data, timeout=5)
    +		except: pass
    +		else:
    +			try:
    +				if not x.json().get("success"):
    +					return signup_error("Unable to verify captcha [2].")
    +			except:
     				return signup_error("Unable to verify captcha [2].")
    -		except:
    -			return signup_error("Unable to verify captcha [2].")
     
     	session.pop("signup_token")
     
    @@ -461,6 +462,13 @@ def post_reset(v):
     							time=timestamp,
     							error="Passwords didn't match."), 400
     
    +	if not valid_password_regex.fullmatch(password):
    +		return render_template("login/reset_password.html",
    +							v=user,
    +							token=token,
    +							time=timestamp,
    +							error="Password must be between 8 and 100 characters."), 400
    +
     	user.passhash = hash_password(password)
     	g.db.add(user)
     
    diff --git a/files/routes/polls.py b/files/routes/polls.py
    index bf51e7953..170d08b54 100644
    --- a/files/routes/polls.py
    +++ b/files/routes/polls.py
    @@ -135,10 +135,15 @@ def option_votes(option_id, v):
     	total_ts = g.db.query(func.sum(User.truescore)).filter(User.id.in_(user_ids)).scalar()
     	total_ts = format(total_ts, ",") if total_ts else '0'
     
    -	if v.admin_level >= 3:
    -		total_patrons = g.db.query(User).filter(User.id.in_(user_ids), User.patron > 1).count()
    +	if v.admin_level >= PERMS['VIEW_PATRONS']:
    +		patrons = [x[0] for x in g.db.query(User.patron).filter(User.id.in_(user_ids), User.patron > 1)]
    +		total_patrons = len(patrons)
    +		total_money = 0
    +		for tier in patrons:
    +			total_money += TIER_TO_MONEY[tier]
     	else:
     		total_patrons = None
    +		total_money = 0
     
     	return render_template("poll_votes.html",
     						v=v,
    @@ -146,6 +151,7 @@ def option_votes(option_id, v):
     						ups=ups,
     						total_ts=total_ts,
     						total_patrons=total_patrons,
    +						total_money=total_money,
     						)
     
     
    @@ -171,10 +177,15 @@ def option_votes_comment(option_id, v):
     	total_ts = g.db.query(func.sum(User.truescore)).filter(User.id.in_(user_ids)).scalar()
     	total_ts = format(total_ts, ",") if total_ts else '0'
     
    -	if v.admin_level >= 3:
    -		total_patrons = g.db.query(User).filter(User.id.in_(user_ids), User.patron > 1).count()
    +	if v.admin_level >= PERMS['VIEW_PATRONS']:
    +		patrons = [x[0] for x in g.db.query(User.patron).filter(User.id.in_(user_ids), User.patron > 1)]
    +		total_patrons = len(patrons)
    +		total_money = 0
    +		for tier in patrons:
    +			total_money += TIER_TO_MONEY[tier]
     	else:
     		total_patrons = None
    +		total_money = 0
     
     	return render_template("poll_votes.html",
     						v=v,
    @@ -182,4 +193,5 @@ def option_votes_comment(option_id, v):
     						ups=ups,
     						total_ts=total_ts,
     						total_patrons=total_patrons,
    +						total_money=total_money,
     						)
    diff --git a/files/routes/posts.py b/files/routes/posts.py
    index ae39aac2c..7ab0c71e5 100644
    --- a/files/routes/posts.py
    +++ b/files/routes/posts.py
    @@ -550,8 +550,6 @@ def submit_post(v, hole=None):
     
     	if url == '': url = None
     
    -	flag_chudded = v.chud and hole != 'chudrama'
    -
     	p = Post(
     		private=flag_private,
     		notify=flag_notify,
    @@ -566,22 +564,23 @@ def submit_post(v, hole=None):
     		title=title,
     		hole=hole,
     		ghost=flag_ghost,
    -		chudded=flag_chudded,
    -		rainbowed=bool(v.rainbow),
    -		queened=bool(v.queen),
    -		sharpened=bool(v.sharpen),
     	)
     
    +	p.chudded = v.chud and hole != 'chudrama' and not (p.is_effortpost and not v.chudded_by)
    +	p.queened = v.queen and not p.is_effortpost
    +	p.sharpened = v.sharpen and not p.is_effortpost
    +	p.rainbowed = v.rainbow and not p.is_effortpost
    +
     	title_html = filter_emojis_only(title, count_emojis=True, obj=p, author=v)
     
    -	if v.marseyawarded and not marseyaward_title_regex.fullmatch(title_html):
    +	if v.hieroglyphs and not marseyaward_title_regex.fullmatch(title_html):
     		abort(400, "You can only type marseys!")
     
     	p.title_html = title_html
     
     	body_html = sanitize(body, count_emojis=True, limit_pings=100, obj=p, author=v)
     
    -	if v.marseyawarded and marseyaward_body_regex.search(body_html):
    +	if v.hieroglyphs and marseyaward_body_regex.search(body_html):
     		abort(400, "You can only type marseys!")
     
     	if len(body_html) > POST_BODY_HTML_LENGTH_LIMIT:
    @@ -594,7 +593,7 @@ def submit_post(v, hole=None):
     
     	execute_under_siege(v, p, p.body, 'post')
     
    -	process_poll_options(v, p)
    +	process_options(v, p)
     
     	for text in {p.body, p.title, p.url}:
     		if execute_blackjack(v, p, text, 'post'): break
    @@ -626,7 +625,7 @@ def submit_post(v, hole=None):
     				if os.path.isfile(name):
     					os.remove(name)
     			else:
    -				p.posterurl = name
    +				p.posterurl = SITE_FULL_IMAGES + name
     				name2 = name.replace('.webp', 'r.webp')
     				copyfile(name, name2)
     				p.thumburl = process_image(name2, v, resize=99)
    @@ -1014,7 +1013,7 @@ def edit_post(pid, v):
     	if title != p.title:
     		title_html = filter_emojis_only(title, golden=False, obj=p, author=p.author)
     
    -		if p.author.marseyawarded and not marseyaward_title_regex.fullmatch(title_html):
    +		if p.author.hieroglyphs and not marseyaward_title_regex.fullmatch(title_html):
     			abort(403, "You can only type marseys!")
     
     		if 'megathread' in title.lower() and 'megathread' not in p.title.lower():
    @@ -1029,7 +1028,7 @@ def edit_post(pid, v):
     	if body != p.body:
     		body_html = sanitize(body, golden=False, limit_pings=100, obj=p, author=p.author)
     
    -		if p.author.marseyawarded and marseyaward_body_regex.search(body_html):
    +		if p.author.hieroglyphs and marseyaward_body_regex.search(body_html):
     			abort(403, "You can only type marseys!")
     
     
    @@ -1043,7 +1042,7 @@ def edit_post(pid, v):
     
     		p.body_html = body_html
     
    -		process_poll_options(v, p)
    +		process_options(v, p)
     
     		gevent.spawn(postprocess_post, p.url, p.body, p.body_html, p.id, False, True)
     
    diff --git a/files/routes/settings.py b/files/routes/settings.py
    index 482db9cf5..af2c6d18b 100644
    --- a/files/routes/settings.py
    +++ b/files/routes/settings.py
    @@ -79,6 +79,13 @@ def upload_custom_background(v):
     
     	return redirect('/settings/personal')
     
    +def notify_removed_users(removed_users, kind):
    +	if removed_users and removed_users != 'everyone':
    +		text = f"@{g.v.username} has removed you from their {kind} list!"
    +		cid = notif_comment(text)
    +		for x in removed_users:
    +			add_notif(cid, x, text, pushnotif_url=f'{SITE_FULL}{g.v.url}')
    +
     @app.post("/settings/personal")
     @limiter.limit('1/second', scope=rpath)
     @limiter.limit('1/second', scope=rpath, key_func=get_ID)
    @@ -134,12 +141,16 @@ def settings_personal_post(v):
     		updated = True
     	elif request.values.get("reddit", v.reddit) != v.reddit:
     		reddit = request.values.get("reddit")
    -		if reddit in {'old.reddit.com', 'reddit.com', 'reddit.lol', 'libreddit.hu', 'undelete.pullpush.io'}:
    +		if reddit in {'old.reddit.com', 'reddit.com', 'teddit.net', 'libreddit.hu', 'undelete.pullpush.io'}:
     			updated = True
     			v.reddit = reddit
     	elif request.values.get("poor", v.poor) != v.poor:
     		updated = True
     		session['poor'] = request.values.get("poor", v.poor) == 'true'
    +		if session['poor']:
    +			v.show_sigs = False
    +			if v.frontsize > 25:
    +				v.frontsize = 25
     
     	slur_filter_updated = updated or update_potentially_permanent_flag("slurreplacer", "slurreplacer", "slur replacer", 192)
     	if isinstance(slur_filter_updated, bool):
    @@ -159,7 +170,7 @@ def settings_personal_post(v):
     	updated = updated or update_flag("newtab", "newtab")
     	updated = updated or update_flag("newtabexternal", "newtabexternal")
     	updated = updated or update_flag("nitter", "nitter")
    -	updated = updated or update_flag("imginn", "imginn")
    +	updated = updated or update_flag("imgsed", "imgsed")
     	updated = updated or update_flag("controversial", "controversial")
     	updated = updated or update_flag("show_sigs", "show_sigs")
     	updated = updated or update_flag("is_private", "private")
    @@ -208,13 +219,17 @@ def settings_personal_post(v):
     		g.db.add(v)
     		return {"message": "Your sig has been updated."}
     
    -	elif not updated and request.values.get("friends") == "":
    +	elif not updated and request.values.get("friends") == "" and v.friends:
    +		removed_users = NOTIFY_USERS(v.friends, v)
    +		notify_removed_users(removed_users, 'friends')
     		v.friends = None
     		v.friends_html = None
     		g.db.add(v)
     		return {"message": "Your friends list has been updated."}
     
    -	elif not updated and request.values.get("enemies") == "":
    +	elif not updated and request.values.get("enemies") == "" and v.enemies:
    +		removed_users = NOTIFY_USERS(v.enemies, v)
    +		notify_removed_users(removed_users, 'enemies')
     		v.enemies = None
     		v.enemies_html = None
     		g.db.add(v)
    @@ -258,6 +273,10 @@ def settings_personal_post(v):
     				for x in notify_users:
     					add_notif(cid, x, text, pushnotif_url=f'{SITE_FULL}{v.url}')
     
    +		if v.friends:
    +			removed_users = NOTIFY_USERS(v.friends, v) - NOTIFY_USERS(friends, v)
    +			notify_removed_users(removed_users, 'friends')
    +
     		v.friends = friends
     		v.friends_html=friends_html
     		g.db.add(v)
    @@ -284,6 +303,10 @@ def settings_personal_post(v):
     				for x in notify_users:
     					add_notif(cid, x, text, pushnotif_url=f'{SITE_FULL}{v.url}')
     
    +		if v.enemies:
    +			removed_users = NOTIFY_USERS(v.enemies, v) - NOTIFY_USERS(enemies, v)
    +			notify_removed_users(removed_users, 'enemies')
    +
     		v.enemies = enemies
     		v.enemies_html=enemies_html
     		g.db.add(v)
    @@ -292,7 +315,7 @@ def settings_personal_post(v):
     
     	elif not updated and FEATURES['USERS_PROFILE_BODYTEXT'] and \
     			(request.values.get("bio") or request.files.get('file')):
    -		bio = request.values.get("bio")[:BIO_FRIENDS_ENEMIES_LENGTH_LIMIT]
    +		bio = request.values.get("bio", "")[:BIO_FRIENDS_ENEMIES_LENGTH_LIMIT]
     		bio = process_files(request.files, v, bio)
     		bio = bio.strip()
     		bio_html = sanitize(bio, blackjack="bio")
    @@ -403,14 +426,14 @@ def namecolor(v):
     def themecolor(v):
     	return set_color(v, "themecolor")
     
    -@app.post("/settings/titlecolor")
    +@app.post("/settings/flaircolor")
     @limiter.limit('1/second', scope=rpath)
     @limiter.limit('1/second', scope=rpath, key_func=get_ID)
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400)
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400, key_func=get_ID)
     @auth_required
    -def titlecolor(v):
    -	return set_color(v, "titlecolor")
    +def flaircolor(v):
    +	return set_color(v, "flaircolor")
     
     @app.post("/settings/verifiedcolor")
     @limiter.limit('1/second', scope=rpath)
    @@ -716,8 +739,8 @@ def settings_advanced_get(v):
     	return render_template("settings/advanced.html", v=v)
     
     @app.post("/settings/name_change")
    -@limiter.limit('1/second', scope=rpath)
    -@limiter.limit('1/second', scope=rpath, key_func=get_ID)
    +@limiter.limit('1/second;5/day', scope=rpath)
    +@limiter.limit('1/second;5/day', scope=rpath, key_func=get_ID)
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400)
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400, key_func=get_ID)
     @auth_required
    @@ -859,7 +882,7 @@ def settings_song_change(v):
     		except:
     			return redirect("/settings/personal?error=Anthem change failed, please try another video!")
     
    -		if duration == 'P0D':
    +		if "D" in duration:
     			return redirect("/settings/personal?error=Can't use a live youtube video!")
     
     		if "H" in duration:
    @@ -899,7 +922,7 @@ def process_settings_plaintext(value, current, length, default_value):
     def settings_change_flair(v):
     	if v.flairchanged: abort(403)
     
    -	flair = process_settings_plaintext("title", v.flair, 100, None)
    +	flair = process_settings_plaintext("flair", v.flair, 100, None)
     
     	if flair:
     		flair_html = filter_emojis_only(flair)
    diff --git a/files/routes/static.py b/files/routes/static.py
    index 95618d86f..771b039b7 100644
    --- a/files/routes/static.py
    +++ b/files/routes/static.py
    @@ -51,7 +51,7 @@ def get_emoji_list(kind, nsfw):
     
     	emojis = []
     	for emoji, author in li:
    -		emoji.author = author.username if FEATURES['ASSET_SUBMISSIONS'] else None
    +		emoji.author = author.username if FEATURES['EMOJI_SUBMISSIONS'] else None
     		emojis.append(emoji)
     	return emojis
     
    @@ -68,7 +68,7 @@ def emoji_list(v, kind):
     	emojis = get_emoji_list(kind, g.show_nsfw)
     	authors = get_accounts_dict([e.author_id for e in emojis], v=v, graceful=True)
     
    -	if FEATURES['ASSET_SUBMISSIONS']:
    +	if FEATURES['EMOJI_SUBMISSIONS']:
     		original = os.listdir("/asset_submissions/emojis/original")
     		for emoji in emojis:
     			emoji.user = authors.get(emoji.author_id)
    @@ -102,7 +102,7 @@ def get_emojis(nsfw = None):
     
     	collected = []
     	for emoji, author in emojis:
    -		if FEATURES['ASSET_SUBMISSIONS']:
    +		if FEATURES['EMOJI_SUBMISSIONS']:
     			emoji.author_username = author.username
     			emoji.author_original_username = author.original_username
     			emoji.author_prelock_username = author.prelock_username
    @@ -457,7 +457,7 @@ def mobile_app(v):
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400)
     def dismiss_mobile_tip():
     	session["tooltip_dismissed"] = int(time.time())
    -	return "", 204
    +	return ""
     
     @app.get("/transfers/")
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400)
    diff --git a/files/routes/users.py b/files/routes/users.py
    index 0228d88be..75309d877 100644
    --- a/files/routes/users.py
    +++ b/files/routes/users.py
    @@ -47,6 +47,7 @@ def _add_profile_view(vid, uid):
     	stdout.flush()
     
     def claim_rewards_all_users():
    +	g.db.flush()
     	emails = [x[0] for x in g.db.query(Transaction.email).filter_by(claimed=None)]
     	users = g.db.query(User).filter(User.email.in_(emails)).order_by(User.truescore.desc()).all()
     	for user in users:
    @@ -58,10 +59,10 @@ def claim_rewards_all_users():
     
     		for transaction in transactions:
     			for t, money in TIER_TO_MONEY.items():
    +				if transaction.amount < money: break
     				tier = t
    -				if transaction.amount <= money: break
     
    -			marseybux += TIER_TO_MBUX[tier]
    +			marseybux += transaction.amount * 500
     			if tier > highest_tier:
     				highest_tier = tier
     			transaction.claimed = True
    @@ -570,18 +571,6 @@ def get_profilecss(username):
     	resp.headers["Content-Type"] = "text/css"
     	return resp
     
    -@app.get("/@/song")
    -@limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400)
    -def usersong(username):
    -	user = get_user(username)
    -	if not user.song:
    -		abort(404)
    -
    -	resp = make_response(redirect(f"/songs/{user.song}.mp3"))
    -	resp.headers["Cache-Control"] = "no-store"
    -	return resp
    -
    -
     @app.post("/subscribe/")
     @limiter.limit('1/second', scope=rpath)
     @limiter.limit('1/second', scope=rpath, key_func=get_ID)
    @@ -1281,7 +1270,7 @@ def subscribed_posts(v, username):
     @auth_required
     def fp(v, fp):
     	if session.get("GLOBAL"):
    -		return '', 204
    +		return ''
     
     	v.fp = fp
     	users = g.db.query(User).filter(User.fp == fp, User.id != v.id).all()
    @@ -1298,7 +1287,7 @@ def fp(v, fp):
     
     	check_for_alts(v, include_current_session=True)
     	g.db.add(v)
    -	return '', 204
    +	return ''
     
     @app.post("/toggle_pins//")
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400)
    @@ -1330,14 +1319,13 @@ def bid_list(v, bid):
     
     
     KOFI_TOKEN = environ.get("KOFI_TOKEN", "").strip()
    -KOFI_TOKEN2 = environ.get("KOFI_TOKEN2", "").strip()
     if KOFI_TOKEN:
     	@app.post("/kofi")
     	@limiter.exempt
     	def kofi():
     		data = json.loads(request.values['data'])
     		verification_token = data['verification_token']
    -		if verification_token not in {KOFI_TOKEN, KOFI_TOKEN2}: abort(400)
    +		if verification_token != KOFI_TOKEN: abort(400)
     
     		print(request.headers.get('CF-Connecting-IP'), flush=True)
     		id = data['kofi_transaction_id']
    @@ -1348,7 +1336,7 @@ if KOFI_TOKEN:
     			amount = int(float(data['amount']))
     		except:
     			abort(400, 'invalid amount')
    -		email = data['email']
    +		email = data['email'].strip().lower()
     
     		transaction = Transaction(
     			id=id,
    @@ -1365,40 +1353,6 @@ if KOFI_TOKEN:
     		return ''
     
     
    -@app.post("/bm")
    -@limiter.exempt
    -def bm():
    -	print(1, 'fuck', flush=True)
    -	print(2, request.headers.get('CF-Connecting-IP'), flush=True)
    -	print(3, [x for x in request.form.items()], flush=True)
    -	print(4, request.values['data'], flush=True)
    -	data = json.loads(request.values['data'])
    -	print(5, data, flush=True)
    -
    -	# id = data['kofi_transaction_id']
    -	# created_utc = int(time.mktime(time.strptime(data['timestamp'].split('.')[0], "%Y-%m-%dT%H:%M:%SZ")))
    -	# type = data['type']
    -	# amount = 0
    -	# try:
    -	# 	amount = int(float(data['amount']))
    -	# except:
    -	# 	abort(400, 'invalid amount')
    -	# email = data['email']
    -
    -	# transaction = Transaction(
    -	# 	id=id,
    -	# 	created_utc=created_utc,
    -	# 	type=type,
    -	# 	amount=amount,
    -	# 	email=email
    -	# )
    -
    -	# g.db.add(transaction)
    -
    -	# claim_rewards_all_users()
    -
    -	return ''
    -
     @app.post("/gumroad")
     @limiter.exempt
     def gumroad():
    @@ -1423,7 +1377,7 @@ def gumroad():
     		type = "one-time"
     
     	amount = int(data['price']) / 100
    -	email = data['email']
    +	email = data['email'].strip().lower()
     
     	transaction = Transaction(
     		id=id,
    @@ -1440,6 +1394,47 @@ def gumroad():
     	return ''
     
     
    +@app.post("/bm")
    +@limiter.exempt
    +def bm():
    +	data = json.loads(request.data)
    +	ip = request.headers.get('CF-Connecting-IP')
    +	if ip != '3.23.31.237':
    +		print(STARS, flush=True)
    +		print(f'/bm fail: {ip}')
    +		print(STARS, flush=True)
    +		abort(400)
    +
    +	created_utc = data['created']
    +
    +	data = data['data']
    +
    +	id = str(data['id'])
    +
    +	existing = g.db.get(Transaction, id)
    +	if existing: return ''
    +
    +	if data['object'] == 'membership':
    +		type = "monthly"
    +	else:
    +		type = "one-time"
    +
    +	amount = int(data['amount'])
    +	email = data['supporter_email'].strip().lower()
    +
    +	transaction = Transaction(
    +		id=id,
    +		created_utc=created_utc,
    +		type=type,
    +		amount=amount,
    +		email=email
    +	)
    +
    +	g.db.add(transaction)
    +
    +	claim_rewards_all_users()
    +
    +	return ''
     
     
     @app.post("/settings/claim_rewards")
    diff --git a/files/routes/votes.py b/files/routes/votes.py
    index bc4e69e88..fac0f184d 100644
    --- a/files/routes/votes.py
    +++ b/files/routes/votes.py
    @@ -66,7 +66,7 @@ def vote_post_comment(target_id, new, v, cls, vote_cls):
     
     	imlazy = 0
     
    -	if existing and existing.vote_type == new: return "", 204
    +	if existing and existing.vote_type == new: return ""
     	if existing:
     		if existing.vote_type == 0 and new != 0:
     			imlazy = 1
    @@ -182,7 +182,7 @@ def vote_post_comment(target_id, new, v, cls, vote_cls):
     		target.author.pay_account('coins', coin_value)
     		target.author.truescore += coin_delta
     
    -	return "", 204
    +	return ""
     
     @app.get("/votes/")
     @limiter.limit(DEFAULT_RATELIMIT, deduct_when=lambda response: response.status_code < 400)
    diff --git a/files/routes/wrappers.py b/files/routes/wrappers.py
    index 4e951310f..13395a23e 100644
    --- a/files/routes/wrappers.py
    +++ b/files/routes/wrappers.py
    @@ -61,13 +61,13 @@ def calc_users():
     		else:
     			ddos_threshold = 1000
     
    -		if g.loggedout_counter > ddos_threshold:
    +		if g.loggedin_counter + g.loggedout_counter > ddos_threshold:
     			if not get_setting('under_attack'):
    -				toggle_setting('under_attack')
    +				set_setting('under_attack', True)
     				set_security_level('under_attack')
     		else:
     			if get_setting('under_attack'):
    -				toggle_setting('under_attack')
    +				set_setting('under_attack', False)
     				set_security_level('high')
     	return ''
     
    diff --git a/files/templates/admin/admin_home.html b/files/templates/admin/admin_home.html
    index a44a4c21c..f9a9c1b11 100644
    --- a/files/templates/admin/admin_home.html
    +++ b/files/templates/admin/admin_home.html
    @@ -4,10 +4,17 @@
     {% block content %}
     

    Admin Tools

    +{% if v.admin_level >= PERMS['INSERT_TRANSACTION'] %} +

    Transactions

    + +{%- endif %} + {% if v.admin_level >= PERMS['ORGIES'] %}

    Orgies

    {%- endif %} @@ -29,13 +36,19 @@ {% endif %} {% endif %} - {% if SITE_NAME == 'rDrama' %} - {% if v.admin_level >= PERMS['MODERATE_PENDING_SUBMITTED_ASSETS'] %} + {% if v.admin_level >= PERMS['MODERATE_PENDING_SUBMITTED_ASSETS'] %} + {% if FEATURES['EMOJI_SUBMISSIONS'] -%}
  2. Approve or Reject Emojis
  3. + {% endif %} + {% if FEATURES['HAT_SUBMISSIONS'] -%}
  4. Approve or Reject Hats
  5. {% endif %} - {% if v.admin_level >= PERMS['UPDATE_ASSETS'] %} + {% endif %} + {% if v.admin_level >= PERMS['UPDATE_ASSETS'] %} + {% if FEATURES['EMOJI_SUBMISSIONS'] -%}
  6. Update Emojis
  7. + {% endif %} + {% if FEATURES['HAT_SUBMISSIONS'] -%}
  8. Update Hats
  9. {% endif %} {% endif %} @@ -129,7 +142,7 @@ {% for setting in SITE_SETTINGS.keys() %} {% if not (setting == "offline_mode" and v.admin_level < PERMS["SITE_OFFLINE_MODE"]) %}
    - +
    {% endif %} diff --git a/files/templates/admin/apps.html b/files/templates/admin/apps.html index f027a4f27..bd734fc02 100644 --- a/files/templates/admin/apps.html +++ b/files/templates/admin/apps.html @@ -4,51 +4,47 @@
    -{% for app in apps %} -
    -
    - + {% for app in apps %} +
    +
    + -
    - - +
    + + - - + + - {% if app.client_id %} - - - {% endif %} + {% if app.client_id %} + + + {% endif %} - - - - - -
    -
    - + +
    + {% endfor %}
    -{% endfor %} -
    -
    -
    + {% endblock %} diff --git a/files/templates/admin/badge_admin.html b/files/templates/admin/badge_admin.html index df2e322d2..3d69bbc44 100644 --- a/files/templates/admin/badge_admin.html +++ b/files/templates/admin/badge_admin.html @@ -38,7 +38,7 @@ {% endfor %} - + {% set usernames = request.values.get('usernames') %} diff --git a/files/templates/admin/insert_transaction.html b/files/templates/admin/insert_transaction.html new file mode 100644 index 000000000..70f61de96 --- /dev/null +++ b/files/templates/admin/insert_transaction.html @@ -0,0 +1,44 @@ +{% extends "default.html" %} + +{% block pagetitle %}Insert Transaction{% endblock %} + +{% block content %} +
    +
    +
    +

    Insert Transaction

    +
    +
    +
    + + + +
    + +
    + + + + + + + + + + + +
    +
    +
    +
    +
    +
    +{% endblock %} diff --git a/files/templates/admin/orgy_control.html b/files/templates/admin/orgy_control.html index e7075fa0d..3c32a5e87 100644 --- a/files/templates/admin/orgy_control.html +++ b/files/templates/admin/orgy_control.html @@ -8,44 +8,77 @@

    Orgy Control Panel

    -
    + Guide here
    - {% if not orgy %} -
    -
    -
    - -
    -
    - -
    + +
    +
    +
    -
    -
    - -
    -
    - -
    +
    +
    - -
    - +
    +
    +
    +
    - - {% else %} -
    - -
    - +
    +
    - - {% endif %} +
    +
    +
    + +
    +
    + +
    +
    + +
    + +
    +
    + +
    + + + + + + + + + + + + + {% for orgy in orgies %} + + + + + {% if orgy.started %} + + {% else %} + + {% endif %} + + + + {% endfor %} +
    TypeTitleLinkStarts onEnds on
    {{orgy.type}}{{orgy.title}}{{orgy.data}}Started + +
    +
    + + {% endblock %} diff --git a/files/templates/admin/update_assets.html b/files/templates/admin/update_assets.html index da431ab48..675144e34 100644 --- a/files/templates/admin/update_assets.html +++ b/files/templates/admin/update_assets.html @@ -10,37 +10,63 @@
    - - +
    +
    +
    Name of {{type}} you wanna alter
    +
    +
    + + +
    +
    +
    Change at least one of these values
    +
    +
    -
    +
    {% if type == "Emoji" %} - +
    + {% endif %} - - + + + + {% if type == "Emoji" %} + + + + +
    + +
    {% endif %} {% endmacro %} - {% if p.award_count("emoji", v) %} -
    - {% for emoji in p.emoji_award_emojis(v, OVER_18_EMOJIS) %} - {% set src = '/e/' + emoji + '.webp' %} - {% set alt = ':#' + emoji + ':' %} - {% set delay = 'animation-delay-' ~ (loop.index-1) %} -
    - {{alt}} -
    - {% endfor %} -
    - {% endif %} - - {% if p.award_count("train", v) %} - {{stackable_award('train', '/e/marseytrain.webp', ':#marseytrain:')}} - {% endif %} - - {% if p.award_count("scooter", v) %} - {{stackable_award('scooter', '/e/marseyscooter.webp', ':#marseyscooter:')}} + {% if p.award_count("emoji", v) or p.award_count("emoji-hz", v) %} + {% for kind in ["emoji", "emoji-hz"] %} +
    + {% for emoji in p.emoji_awards_emojis(v, kind, OVER_18_EMOJIS) %} + {% set src = '/e/' + emoji + '.webp' %} + {% set alt = 'emoji-award-' + emoji %} + {% set delay = 'animation-delay-' ~ ((loop.index-1)/4)|int %} +
    + {{alt}} +
    + {% endfor %} +
    + {% endfor %} {% endif %} {% if p.award_count("firework", v) %} diff --git a/files/templates/comments.html b/files/templates/comments.html index ed50cbb2c..de09f5db4 100644 --- a/files/templates/comments.html +++ b/files/templates/comments.html @@ -25,7 +25,7 @@ {% if (c.is_banned or c.deleted_utc) and not (v and v.admin_level >= PERMS['POST_COMMENT_MODERATION']) and not (v and v.id==c.author_id) %}
    - +