[Demonstration 1]

[Buggy Method]
public void nextRound() {
    secondsSincePlay = 0;
    for (LobbyMember lobbyMember : getActivePlayers()) {
        if (playerDecks.get(lobbyMember.getUserID()).size() == 0) {
            // WINNER WINNER CHICKEN DINNER
            winner(lobbyMember.getUsername());
            return;
        }
    }
    currentPlayer = playerOrder.get(playerOrderIndex);
    String cardText = activeUnoCard.getText();
    if (!activeUnoCard.getCardColour().equals(nextCardColour)) {
        cardText = "Any " + nextCardColour.text + " card";
    }
    getGameLobby().sendMessage(SendableTextMessage.builder().message("➡️ *Current Card:* " + cardText + "\n" + "\uD83D\uDC49\uD83C\uDFFB *Current Player:* " + currentPlayer).parseMode(ParseMode.MARKDOWN).build());
    round++;
    sendDeck(getGameLobby().getLobbyMember(currentPlayer));
}

[Buggy Hunk]
"\uD83D\uDC49\uD83C\uDFFB *Current Player:* " + currentPlayer).parseMode(ParseMode.MARKDOWN).build());

[Patch]
"\uD83D\uDC49\uD83C\uDFFB *Current Player:* " + StringUtil.markdownSafe(currentPlayer)).parseMode(ParseMode.MARKDOWN).build());

[Demonstration 2]

[Buggy Method]
private void spawnPowerUp() {
    Random rand = new Random();
    int powerUpCount = rand.nextInt(1) + 1;
    for (int i = 0; i < powerUpCount; ++i) {
        float left, right, top, bottom;
        left = rand.nextInt(1000);
        right = left + 35;
        bottom = rand.nextInt(1000);
        top = bottom - 35;
        PowerUp pwrUp = new PowerUp(left, top, right, bottom);
        this.myPowerUps.add(pwrUp);
        this.myScene.addEntity(pwrUp);
    }
}

[Buggy Hunk]
int powerUpCount = rand.nextInt(1) + 1;

[Patch]
int powerUpCount = rand.nextInt(5) + 1;

[Demonstration 3]

[Buggy Method]
private static void downloadVideos() throws InterruptedException {
    WebDriver driver = new FirefoxDriver();
    driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
    for (int i = 0; i < interval[1] - interval[0] + 1; i++) {
        int currentEpisode = interval[0] + i;
        String name = null;
        String tagTitle = null;
        name = getName(Integer.toString(currentEpisode));
        tagTitle = getTagTitle(Integer.toString(currentEpisode));
        String filePath = name;
        try {
            driver.get(URL);
        } catch (TimeoutException e) {
            // Ignore the exception.
        }
        System.out.println(driver.getTitle());
        if (driver.getTitle().equals("Please wait 5 seconds...")) {
            Thread.sleep(10000);
        } else {
            Thread.sleep(5000);
        }
        DecimalFormat df2 = new DecimalFormat("000");
        WebElement table = driver.findElement(By.className("listing"));
        List<WebElement> links = table.findElements(By.tagName("a"));
        for (WebElement link : links) {
            if (link.getText().contains(df2.format(currentEpisode))) {
                System.out.println(link.getText());
                try {
                    link.click();
                } catch (TimeoutException e) {
                    // Ignore the exception.
                }
                Thread.sleep(5000);
                break;
            }
        }
        System.out.println(driver.getTitle());
        currentVideoURL = driver.findElement(By.className("vjs-tech")).getAttribute("src");
        try {
            driver.get(URL);
        } catch (TimeoutException e) {
            // Ignore the exception.
        }
        URL website = null;
        try {
            website = new URL(currentVideoURL);
        } catch (MalformedURLException e1) {
            e1.printStackTrace();
        }
        Download d = new Download(website, filePath);
        Thread.sleep(1000);
        DecimalFormat df = new DecimalFormat("###.00");
        ProgressBar pb = new ProgressBar(d.getSize(), true);
        pb.setHead(name);
        pb.setTail(df.format(0) + " / " + (df.format((double) d.getSize() / (double) 1000000) + " MB"));
        pb.update(0);
        long lastRefresh = System.currentTimeMillis();
        Thread.sleep(1000);
        while (d.getStatus() == 0) {
            if (System.currentTimeMillis() - lastRefresh >= 300000) {
                lastRefresh = System.currentTimeMillis();
                try {
                    driver.navigate().refresh();
                } catch (TimeoutException e) {
                    // Ignore the exception.
                }
            }
            pb.setTail((df.format((double) d.getDownloaded() / (double) 1000000)) + " / " + (df.format((double) d.getSize() / (double) 1000000)) + " MB - " + (df.format((double) d.getDownloadRate() / (double) 1000)) + " KB/Sec");
            pb.update(d.getDownloaded());
            Thread.sleep((long) (pb.UPDATE_INTERVAL * 0.51));
        }
        Thread.sleep(pb.UPDATE_INTERVAL + 10);
        pb.setTail((df.format((double) d.getDownloaded() / (double) 1000000)) + " / " + (df.format((double) d.getSize() / (double) 1000000)) + " MB - " + (df.format((double) d.getDownloadRate() / (double) 1000)) + " KB/Sec");
        pb.update(d.getSize());
        setMetaData(filePath + Download.tmpExtension, tagTitle, AppleDataVariable.TITLE);
        d.finish();
    }
    driver.close();
}

[Buggy Hunk]
pb.update(d.getSize());

[Patch]
pb.update(d.getDownloaded());