@Override
    public Ticket expand(final String ticketId) throws Throwable {
        val structure = parse(ticketId);

        val service = serviceFactory.createService(structure.ticketElements().get(CompactTicketIndexes.SERVICE.getIndex()));
        val credentialsProvided = BooleanUtils.toBoolean(structure.ticketElements().get(3));
        val authentication = expandAuthentication(principalFactory, structure);
        val serviceTicketFactory = (ServiceTicketFactory) ticketFactory.getObject().get(getTicketType());
        val serviceTicket = serviceTicketFactory.create(service, authentication, credentialsProvided, getTicketType());
        serviceTicket.setExpirationPolicy(new FixedInstantExpirationPolicy(structure.expirationTime()));
        serviceTicket.setCreationTime(DateTimeUtils.zonedDateTimeOf(structure.creationTime()));
        return serviceTicket;
    }
This is {@link ServiceTicketCompactor}.

@author Misagh Moayyed
@since 7.0.0
support/cas-server-support-stateless-ticket-registry/src/main/java/org/apereo/cas/ticket/registry/compact/ServiceTicketCompactor.java